Docs Menu
Docs Home
/ /

Buscar un documento

Puede recuperar un solo documento de una colección llamando al find_one() método en un Collection instancia.

Pase un filtro de consulta al find_one() método para devolver un documento de la colección que coincida con el filtro. Si varios documentos coinciden con el filtro de consulta, este método devuelve el primero según su orden natural en la base de datos o según el orden de clasificación especificado en una FindOneOptions instancia.

El find_one() método devuelve un <T> tipo Option, donde T es el tipo con el que parametrizó su Collection instancia.

Para obtener más información sobre cómo recuperar documentos, consulte la Guíade recuperación de datos.

Este ejemplo recupera un documento que coincide con un filtro de query de la colección restaurants en la base de datos sample_restaurants. El método find_one() devuelve el primer documento en el que el valor del campo name es "Tompkins Square Bagels".

Puede modelar el documento recuperado como un tipo Document o un tipo de datos personalizado. Para especificar qué tipo de datos representa los datos de la colección, reemplace el parámetro de tipo <T> en la línea resaltada por uno de los siguientes valores:

  • <Document>:Recupera e imprime documentos de colección como documentos BSON

  • <Restaurant>:Recupera e imprime documentos de colección como instancias de la estructura Restaurant, definida en la parte superior del código

Seleccione el Asynchronous o la pestaña Synchronous para ver el código correspondiente para cada entorno de ejecución:

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(())
}

Seleccione la pestaña BSON Document Result o Restaurant Struct Result para ver el código de salida correspondiente según el parámetro de tipo de su colección:

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

Volver

Ejemplos de CRUD

En esta página