Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Contabilizar documentos

En esta guía, puedes aprender cómo usar el controlador Scala para recuperar un recuento exacto y estimado del número de documentos en una colección. Los siguientes métodos cuentan los documentos en una colección:

  • countDocuments(): Devuelve el número exacto de documentos que coinciden con un filtro de query o que existen en una colección

  • estimatedDocumentCount()Devuelve el número estimado de documentos en una colección.

Los ejemplos de esta guía utilizan la colección companies en la base de datos sample_training de los conjuntos de datos de ejemplo de Atlas. Para acceder a esta colección desde tu aplicación de Scala, crea un MongoClient que se conecte a un clúster de Atlas y asigna el siguiente valor a tus variables database y collection:

val database: MongoDatabase = mongoClient.getDatabase("sample_training")
val collection: MongoCollection[Document] = database.getCollection("companies")

Para aprender cómo crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de ejemplo, consulta la guía MongoDB Get Started.

Utiliza el método countDocuments() para contar la cantidad de documentos en una colección. Para contar la cantidad de documentos que cumplen con criterios de búsqueda específicos, pasa un filtro de query al método countDocuments().

Para obtener más información sobre cómo especificar una query, consulta la guía Especificar una query.

Para obtener un recuento de todos los documentos de la colección, llama al método countDocuments() sin pasar ningún parámetro, como se muestra en el siguiente ejemplo:

collection.countDocuments()
.subscribe((count: Long) => println(s"Number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Number of documents: 9500

Para devolver un recuento de documentos que coinciden con criterios de búsqueda específicos, pasa un filtro de query al método countDocuments().

El siguiente ejemplo cuenta el número de documentos en los que el valor del campo founded_year es 2010:

collection.countDocuments(equal("founded_year", 2010))
.subscribe((count: Long) => println(s"Companies founded in 2010: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Number of companies founded in 2010: 33

Puede modificar el comportamiento del método countDocuments() pasando una instancia de CountOptions como parámetro. La siguiente tabla describe algunas funciones miembro de la clase CountOptions, que puede utilizar para configurar opciones para la operación de conteo:

Método
Descripción

collation()

Establece la intercalación que se utilizará para la operación.
Tipo de parámetro: Collation

hint()

Establece el índice que se utilizará para la operación.
Tipo de parámetro: Bson

limit()

Establece el número máximo de documentos a contabilizar. Este valor debe ser un número entero positivo.
Tipo de parámetro: int

skip()

Establece el número de documentos que se omitirán antes de contarlos.
Tipo de parámetro: int

El siguiente ejemplo utiliza el método countDocuments() para contar el número de documentos en los que el campo number_of_employees tiene el valor 50 e instruye a la operación a contar un máximo de 100 resultados:

val countOptions = CountOptions().limit(100)
collection.countDocuments(equal("number_of_employees", 50), countOptions)
.subscribe((count: Long) => println(s"Companies with 50 employees: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Number of companies with 50 employees: 100

Puede recuperar una estimación de la cantidad de documentos en una colección llamando al método estimatedDocumentCount(). El método estima la cantidad de documentos en función de los metadatos de la colección, lo que podría ser más rápido que realizar un recuento exacto.

El siguiente ejemplo estima el número de documentos en una colección:

collection.estimatedDocumentCount()
.subscribe((count: Long) => println(s"Estimated number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Estimated number of documents: 9500

Puede modificar el comportamiento del método estimatedDocumentCount() pasando una instancia de EstimatedDocumentCountOptions como parámetro. La clase EstimatedDocumentCountOptions incluye la función miembro comment(), que se puede usar para configurar un comentario adjunto a su operación.

El siguiente ejemplo utiliza el método estimatedDocumentCount() para devolver una estimación de la cantidad de documentos en la colección y establece un comentario sobre la operación:

val estimatedOptions = EstimatedDocumentCountOptions().comment("Count operation")
collection.estimatedDocumentCount(estimatedOptions)
.subscribe((count: Long) => println(s"Estimated number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Estimated number of documents: 9500

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: