Contagem de documentos
Você pode contar o número de documento em uma collection chamando um dos seguintes métodos em uma instância Collection
:
count_documents(): conta o número de documentos que correspondem a um filtro de query. Para saber mais sobre como criar filtros de query, consulte o guia Especificar uma query do.
estimated_document_count(): estima o número total de documentos em uma collection usando metadados de collection.
Cada método retorna a contagem como uma instância u64
.
Observação
Se você não passar um filtro para o método count_documents()
, o MongoDB contará o número total de documentos na coleção.
Exemplo
Este exemplo conta documentos na coleção restaurants
do banco de dados sample_restaurants
. O exemplo utiliza o método estimated_document_count()
para contar o número total de documentos na coleção. Em seguida, o exemplo utiliza o método count_documents()
para contar o número de documentos nos quais o valor do campo name
inclui a string "Sunset"
.
Você pode acessar os documentos na coleção restaurants
como instâncias do tipo Document
ou um tipo de dados personalizado. Para especificar qual tipo de dados representa os dados da coleção, substitua o parâmetro de tipo <T>
na linha realçada por um dos seguintes valores:
<Document>
: representa documentos de coleção como documentos BSON<Restaurant>
: Representa documentos de coleção como instâncias da estruturaRestaurant
, definida na parte superior do código
Selecione a aba Asynchronous ou Synchronous para ver o código correspondente para cada tempo de execução:
use std::env; use mongodb::{ bson::{ doc, Document }, Client, Collection }; 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?; // Replace <T> with the <Document> or <Restaurant> type parameter let my_coll: Collection<T> = client .database("sample_restaurants") .collection("restaurants"); let ct = my_coll.estimated_document_count().await?; println!("Number of documents: {}", ct); let ct = my_coll.count_documents(doc! { "name": doc! { "$regex": "Sunset" } }).await?; println!("Number of matching documents: {}", ct); Ok(()) }
// Your values might differ Number of documents: 25216 Number of matching documents: 10
use std::env; use mongodb::{ bson::{ Document, 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)?; // Replace <T> with the <Document> or <Restaurant> type parameter let my_coll: Collection<T> = client .database("sample_restaurants") .collection("restaurants"); let ct = my_coll.estimated_document_count().run()?; println!("Number of documents: {}", ct); let ct = my_coll .count_documents(doc! { "name": doc! { "$regex": "Sunset" } }) .run()?; println!("Number of matching documents: {}", ct); Ok(()) }
// Your values might differ Number of documents: 25216 Number of matching documents: 10