Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/

Encontrar um documento

Nesta página

  • Exemplo
  • Saída

Você pode recuperar um único documento de uma coleção ligando para o métodofind_one() em uma Collection instância.

Passe um filtro de query para o método find_one() para retornar um documento na coleção que corresponda ao filtro. Se vários documentos corresponderem ao filtro de query, esse método retornará o primeiro documento correspondente de acordo com sua ordem natural no banco de dados ou de acordo com a ordem de classificação especificada em uma instância do FindOneOptions .

O find_one() método retorna uma Opção<T> tipo, onde T é o tipo com o qual você parametrizou sua Collection instância do .

Para saber mais sobre como recuperar documentos, consulte o guia Recuperar dados .

Este exemplo recupera um documento que corresponde a um filtro de query da coleção restaurants no banco de banco de dados sample_restaurants. O método find_one() retorna o primeiro documento no qual o valor do campo name é "Tompkins Square Bagels".

Você pode modelar o documento recuperado como um tipo Document ou um tipo de dados personalizado. Para especificar qual tipo de dados representa os dados da coleção, substitua o parâmetro de tipo <T> na linha realçada por um dos seguintes valores:

  • <Document>: Recupera e imprime documentos de coleção como documentos BSON

  • <Restaurant>: recupera e imprime documentos de coleção como instâncias da estrutura Restaurant, definida na parte superior do código

Selecione a aba Asynchronous ou Synchronous para ver o código correspondente para cada tempo de execução:

use mongodb::{
bson::doc,
Client,
Collection
};
use serde::{ Deserialize, Serialize };
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
cuisine: String,
}
#[tokio::main]
async fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let client = Client::with_uri_str(uri).await?;
// Replace <T> with the <Document> or <Restaurant> type parameter
let my_coll: Collection<T> = client
.database("sample_restaurants")
.collection("restaurants");
let result = my_coll.find_one(
doc! { "name": "Tompkins Square Bagels" }
).await?;
println!("{:#?}", result);
Ok(())
}
use mongodb::{
bson::doc,
sync::{Client, Collection}
};
use serde::{ Deserialize, Serialize };
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
cuisine: String,
}
fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let client = Client::with_uri_str(uri)?;
// Replace <T> with the <Document> or <Restaurant> type parameter
let my_coll: Collection<T> = client
.database("sample_restaurants")
.collection("restaurants");
let result = my_coll.find_one(
doc! { "name": "Tompkins Square Bagels" }
).run()?;
println!("{:#?}", result);
Ok(())
}

Selecione a aba BSON Document Result ou Restaurant Struct Result para ver a saída de código correspondente com base no parâmetro de tipo da sua coleção:

Some(
Document({
"_id": ObjectId(
"...",
),
...
"name": String(
"Tompkins Square Bagels",
),
...
}),
)
Some(
Restaurant {
name: "Tompkins Square Bagels",
cuisine: "American",
},
)

Voltar

Exemplos de CRUD

Nesta página