Docs Menu
Docs Home
/ /

Encuentra varios documentos

Puede consultar varios documentos en una colección llamando al find() método en un Collection instancia.

Pase un filtro de consulta al método find() para devolver los documentos de la colección que coincidan con el filtro. Si no incluye un filtro, MongoDB devuelve todos los documentos de la colección.

Tip

Para obtener más información sobre cómo recuperar documentos, consulte la Para obtener más información sobre cómo recuperardatos y cómo crear filtros de consulta, consulte la guía Especificar una consulta.

El find() método devuelve un tipo Cursor, que se puede iterar para recuperar documentos individuales. Para obtener más información sobre el uso de cursores, consulte la guía "Acceder a datos mediante un cursor".

Este ejemplo recupera los documentos que coinciden con un filtro de consulta de la colección restaurants en la base de datos sample_restaurants. El método find() devuelve todos los documentos cuyo valor del campo cuisine es "French".

Puede modelar cada 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 futures::TryStreamExt;
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 mut cursor = my_coll.find(
doc! { "cuisine": "French" }
).await?;
while let Some(doc) = cursor.try_next().await? {
println!("{:#?}", doc);
}
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 mut cursor = my_coll.find(
doc! { "cuisine": "French" }
).run()?;
for result in cursor {
println!("{:#?}", result?);
}
Ok(())
}

Seleccione la pestaña BSON Document Results o Restaurant Struct Results 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(
"Cafe Un Deux Trois",
),
...
}),
),
Some(
Document({
"_id": ObjectId(
"...",
),
...
"name": String(
"Calliope",
),
...
}),
)
...
...
Restaurant {
name: "Cafe Un Deux Trois",
cuisine: "French",
}
Restaurant {
name: "Calliope",
cuisine: "French",
}
...

Volver

Encontrar uno

En esta página