Você pode recuperar um único documento de uma coleção chamando o método find_one() em uma instância Collection.
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 método find_one() retorna um tipo Option<T>, em que T é o tipo com o qual você parametrizou sua instância Collection.
Para saber mais sobre como recuperar documentos, consulte o guia Recuperar dados .
Exemplo
Este exemplo recupera um documento que corresponde a um filtro de query da coleção restaurants no 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 }; struct Restaurant {     name: String,     cuisine: String, } 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 }; 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(()) } 
Saída
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",    }, )