Overview
En esta guía, se explica cómo recuperar recuentos precisos y estimados del número de documentos en una colección.
Datos de muestra
Los ejemplos de esta guía utilizan la colección movies en la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para aprender cómo crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulta la guía de MongoDB Comenzar.
La siguiente clase de datos de Kotlin modela los documentos de esta colección:
data class Movie( val id: ObjectId, val title: String )
Recupera un recuento preciso
Utiliza el método countDocuments() para contar el número de documentos que hay en una colección. Para contar el número de documentos que coinciden con los criterios de búsqueda especificados, pasa un filtro de query al método countDocuments().
Para obtener más información sobre la especificación de una query, consulta Especificar una query.
Contar todos los documentos
Para devolver un recuento de todos los documentos en la colección, llama al método countDocuments() sin argumentos, como se muestra en el siguiente ejemplo:
println(collection.countDocuments())
21349
Contar documentos específicos
Para devolver un recuento de documentos que coincidan con criterios de búsqueda específicos, especifica tu query en el método countDocuments(). El siguiente ejemplo imprime un recuento de todos los documentos en la colección movies que tienen un valor de campo year igual a 1930:
println(collection.countDocuments(eq("year", "1930")))
10
Personalizar el comportamiento de recuento
El método countDocuments() acepta parámetros opcionales en forma de un objeto CountOptions, que representa opciones que se pueden usar para configurar la operación de conteo. Puedes configurar estas opciones creando una nueva instancia del objeto CountOptions, configurando los campos del objeto mediante los métodos correspondientes y pasándolo al método countDocuments(). Si no especificas ninguna opción, el controlador no personaliza la operación de conteo.
La siguiente tabla describe las opciones que puedes configurar para personalizar countDocuments():
Opción | Descripción |
|---|---|
| Especifica un comentario para adjuntar a la operación. |
| Establece el número de documentos que se deben omitir antes de devolver los resultados. |
| Establece el número máximo de documentos a contar. Debe ser un número entero positivo. |
| Especifica el tipo de intercalación de lenguaje a usar al ordenar los resultados. Para obtener más información, consulte intercalación en el manual de MongoDB Server. |
| Establece el índice para buscar documentos. |
El siguiente ejemplo utiliza un objeto CountOptions para añadir un comentario a la operación countDocuments():
val options = CountOptions().comment("Retrieving count") collection.countDocuments(Filters.empty(), options)
Recuperar un conteo estimado
Utiliza el método estimatedDocumentCount() para recuperar una estimación de la cantidad de documentos en una colección. El método estima la cantidad de documentos en función de los metadatos de la colección, lo cual puede ser más rápido que realizar un conteo preciso.
El siguiente ejemplo imprime el número estimado de documentos en una colección:
print(collection.estimatedDocumentCount())
21349
Personaliza el comportamiento de conteo estimado
El método estimatedDocumentCount() acepta parámetros opcionales en la forma de un objeto EstimatedDocumentCountOptions, que representa las opciones que puedes usar para configurar la operación de conteo. Puedes establecer estas opciones instanciando un nuevo objeto EstimatedDocumentCountOptions, configurando los campos del objeto usando los métodos correspondientes y pasándolo al método estimatedDocumentCount(). Si no especifica ninguna opción, el controlador no personaliza la operación de conteo.
La siguiente tabla describe las opciones que puedes configurar para personalizar estimatedDocumentCount():
Opción | Descripción |
|---|---|
| Especifica un comentario para adjuntar a la operación. |
El siguiente ejemplo utiliza un objeto EstimatedDocumentCountOptions para agregar un comentario a la operación estimatedDocumentCount():
val options = EstimatedDocumentCountOptions().comment("Retrieving count") collection.estimatedDocumentCount(options)
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: