Puedes contar el número de documentos en una colección llamando a uno de los siguientes métodos en un Collection instancia:
count_documents(): cuenta el número de documentos que coinciden con un filtro de query. Para obtener más información sobre la creación de filtros de query, consulta el Guía 'Especificar una query' .
estimated_document_count(): estima el número total de documentos en una colección mediante el uso de metadatos de la colección.
Cada método devuelve el conteo como una instancia de u64.
Nota
Si no pasas un filtro al método count_documents(), MongoDB cuenta el número total de documentos en la colección.
Ejemplo
Este ejemplo cuenta documentos en la colección restaurants de la base de datos sample_restaurants.
El siguiente código primero utiliza el método estimated_document_count() para contar el número total de documentos en la colección. Luego, el ejemplo utiliza el método count_documents() para contar el número de documentos que coinciden con un filtro de query. El filtro coincide con los documentos en los que el valor del campo name incluye la string "Sunset":
Selecciona el Asynchronous o la pestaña Synchronous para ver el código correspondiente para cada entorno de ejecución:
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