Puedes contar el número de documentos en una colección llamando a uno de los siguientes métodos en un Collection instancia:
contar_documentos(): 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 los documentos de la colección restaurants de la base de datos sample_restaurants. El ejemplo utiliza el método estimated_document_count() para contar el número total de documentos de la colección. A continuación, utiliza el método count_documents() para contar el número de documentos cuyo valor del campo name incluye la cadena "Sunset".
Se puede acceder a los documentos en la colección restaurants como instancias del tipo Document o de un tipo de datos personalizado. Para especificar el tipo de dato que representa la colección de datos, reemplaza el parámetro de tipo <T> en la línea resaltada con uno de los siguientes valores:
<Document>: Representa documentos de colección como documentos BSON<Restaurant>: Representa los documentos de colección como instancias de la estructuraRestaurant, definida en la parte superior del código
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, 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