Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/

Localizar vários documentos

Você pode consultar vários documentos em uma coleção chamando o find() método em uma Collection instância do .

Passe um filtro de query para o método find() para retornar documentos na coleção que correspondam ao filtro. Se você não incluir um filtro, o MongoDB retornará todos os documentos na coleção.

Dica

Para saber mais sobre como recuperar documentos, consulte o guia Recuperar dados e, para saber mais sobre como criar filtros de query, consulte o guia Especificar uma query .

O find() método retorna um cursor tipo, que você pode iterar para recuperar documentos individuais. Para saber mais sobre o uso de cursores, consulte o guia Acessar dados usando um cursor .

Este exemplo recupera documento que correspondem a um filtro de query da collection restaurants no reconhecimento de data center sample_restaurants . O exemplo preenche as instâncias da estrutura Restaurant com dados dos documentos recuperados.

O código a seguir usa um filtro de query que corresponde a documento nos quais o valor do campo cuisine é "French".

Selecione a aba Asynchronous ou Synchronous para ver o código correspondente para cada tempo de execução:

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" }
).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" }
).run()?;
for result in cursor {
println!("{:?}", result?);
}
Ok(())
}
// Results truncated
...
Restaurant { name: "Cafe Un Deux Trois", cuisine: "French" }
Restaurant { name: "Calliope", cuisine: "French" }
...

Voltar

Encontrar um documento