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 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 query de la colección restaurants en la base de datos sample_restaurants. El método find() devuelve todos los documentos en los que el 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 la colección como instancias de la estructura Restaurant, definida al inicio del código

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?;
// 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(())
}

Selecciona la pestaña BSON Document Results o Restaurant Struct Results para ver la salida de código correspondiente según el parámetro de tipo de tu 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