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 coleção usando metadados de coleção.
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 documento na collection restaurants
do reconhecimento de data center sample_restaurants
.
O código a seguir primeiro usa o método estimated_document_count()
para contar o número total de documento na collection. Em seguida, o exemplo utiliza o método count_documents()
para contar o número de documentos que correspondem a um filtro de query. O filtro corresponde a documentos nos quais o valor do campo name
inclui a string "Sunset"
:
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, Client, Collection }; use bson::Document; async fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri).await?; let my_coll: Collection<Document> = client .database("sample_restaurants") .collection("restaurants"); let ct = my_coll.estimated_document_count(None).await?; println!("Number of documents: {}", ct); let ct = my_coll.count_documents(doc! { "name": doc! { "$regex": "Sunset" } }, None).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 } }; fn main() -> mongodb::error::Result<()> { let uri = "<connection string>"; let client = Client::with_uri_str(uri)?; let my_coll: Collection<Document> = client .database("sample_restaurants") .collection("restaurants"); let ct = my_coll.estimated_document_count(None)?; println!("Number of documents: {}", ct); let ct = my_coll.count_documents(doc! { "name": doc! { "$regex": "Sunset" } }, None)?; println!("Number of matching documents: {}", ct); Ok(()) }
// Your values might differ Number of documents: 25216 Number of matching documents: 10