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".
Ejemplo
Este ejemplo recupera documentos que coinciden con un filtro de consulta de la colección restaurants en la base de datos sample_restaurants. El ejemplo rellena las instancias de la estructura Restaurant con datos de los documentos recuperados.
El siguiente código utiliza un filtro de consulta que coincide con los documentos en los que el valor del campo cuisine es "French".
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 }; struct Restaurant { name: String, cuisine: String, } async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let mut cursor = my_coll.find( doc! { "cuisine": "French" }, None ).await?; while let Some(doc) = cursor.try_next().await? { println!("{:?}", doc); } Ok(()) }
// Results truncated ... Restaurant { name: "Cafe Un Deux Trois", cuisine: "French" } Restaurant { name: "Calliope", cuisine: "French" } ...
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)?; let my_coll: Collection<Restaurant> = client .database("sample_restaurants") .collection("restaurants"); let mut cursor = my_coll.find( doc! { "cuisine": "French" }, None )?; for result in cursor { println!("{:?}", result?); } Ok(()) }
// Results truncated ... Restaurant { name: "Cafe Un Deux Trois", cuisine: "French" } Restaurant { name: "Calliope", cuisine: "French" } ...