Puede contar la cantidad 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 consulta. Para obtener más información sobre la creación de filtros de consulta, consulte Especifique una guía de consulta.
estimate_document_count(): estima el número total de documentos en una colección utilizando metadatos de la colección.
Cada método devuelve el recuento como una instancia u64.
Nota
Si no pasa un filtro al método count_documents(), MongoDB cuenta la cantidad 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".
Puede acceder a los documentos de la colección restaurants como instancias del tipo Document o como un tipo de dato personalizado. Para especificar qué tipo de dato representa los datos de la colección, sustituya el parámetro de tipo <T> en la línea resaltada por uno de los siguientes valores:
<Document>: Representa los 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
Seleccione 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