Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Encuentra varios documentos

Se puede query para varios documentos en una colección llamando a la find() método sobre un Collection instancia.

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

Tip

Para obtener más información sobre la recuperación de documentos, consulte el Guía de recuperar datos y, para obtener más información sobre cómo crear filtros de query, consulta la guía Especificar una query.

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

Este ejemplo recupera los documentos que coinciden con un filtro de query de la colección restaurants en la base de datos sample_restaurants. El ejemplo completa instancias de la estructura Restaurant con datos de los documentos recuperados.

El siguiente código utiliza un filtro de query que coincide con los documentos en los que el valor del campo cuisine es "French".

Selecciona 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?;
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 };
#[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)?;
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" }
...

Volver

Encontrar uno