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 recuperar un recuento exacto y estimado del número de documentos en una colección.

Los ejemplos en esta guía utilizan la colección sample_restaurants.restaurants de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulte Primeros pasos.

Importante

Proyecto Reactor librería

Esta guía usa la librería Proyecto Reactor para consumir instancias Publisher devueltas por los métodos del driver Reactive Streams de Java. Para obtener más información sobre la biblioteca Project Reactor y cómo utilizarla, consulta Primeros pasos en la documentación de Reactor. Para obtener más información sobre cómo utilizamos los métodos de la librería Project Reactor en esta guía, consulta la guía Guardar datos en MongoDB.

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 la especificación de una query, consulta Especificar una query.

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

Publisher<Long> countPublisher = restaurants.countDocuments();
Mono.from(countPublisher).doOnNext(System.out::println).blockLast();

Para devolver un recuento de documentos que coincidan con criterios de búsqueda específicos, especifica tu query en el método countDocuments(), como se muestra en el siguiente ejemplo. Para obtener más información sobre cómo especificar una query, consulta la guía Especificar una query.

Publisher<Long> countPublisher = restaurants.countDocuments(
eq("cuisine", "Italian"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

Puedes modificar el comportamiento del método countDocuments() pasando parámetros opcionales al método. La clase CountOptions proporciona métodos que modifican el comportamiento del método countDocuments(). Para usar la clase CountOptions, construye una nueva instancia de la clase y luego llama a uno o más de sus métodos para modificar la operación de conteo. Puedes encadenar estas llamadas a métodos.

Para modificar el comportamiento de la operación de conteo, pase la instancia de clase y las llamadas a métodos encadenados como el último argumento al método countDocuments().

La siguiente tabla describe los métodos de la clase CountOptions:

Método
Descripción

collation(Collation collation)

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.

comment(BsonValue comment)

Adjunta un comentario BsonValue a la operación. Para obtener más información, consulta la guía de campos del comando de inserción en el manual de MongoDB Server.

comment(String comment)

Adjunta un comentario String a la operación. Para obtener más información, consulta la guía de campos del comando de inserción en el manual de MongoDB Server.

hint(Bson hint)

Establece el índice para la operación como un valor Bson. Para obtener más información, consulta la instrucción hint en el manual del servidor MongoDB.

hintString(String hint)

Establece el índice para la operación como un valor String. Para obtener más información, consulta la instrucción hint en el manual del servidor MongoDB.

limit(int limit)

Establece un límite para el número máximo de documentos que el cursor devuelve. Para obtener más información, consulta cursor en la documentación del MongoDB Server.

skip(int skip)

Establece la cantidad de documentos que la query omite antes de devolver resultados. Para más información, consulta omitido en el manual del MongoDB Server.

El siguiente código utiliza el método countDocuments() para contar todos los documentos en la colección restaurants con un valor cuisine de "Italian". También adjunta el comentario "Count all Italian restaurants" a la operación como un String.

Publisher<Long> countPublisher = restaurants.countDocuments(
eq("cuisine", "Italian"),
new CountOptions().comment("Count all Italian restaurants"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

Puedes obtener una estimación del número de documentos en una colección llamando al método estimatedDocumentCount(). El método estima el número de documentos basado en los metadatos de la colección, lo que podría ser más rápido que realizar un conteo preciso.

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

Publisher<Long> countPublisher = restaurants.estimatedDocumentCount();
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

Puedes modificar el comportamiento del método estimatedDocumentCount() pasando parámetros opcionales al método. La clase EstimatedDocumentCountOptions proporciona métodos que modifican el comportamiento del método estimatedDocumentCount(). Para usar la clase EstimatedDocumentCountOptions, construye una nueva instancia de la clase y luego llama a uno o más de sus métodos para modificar la operación de conteo. Puedes encadenar estas llamadas a métodos.

Para modificar el comportamiento de la operación de recuento, pase la instancia de la clase y las llamadas de métodos encadenados como único argumento al método estimatedDocumentCount().

La siguiente tabla describe las opciones que puedes configurar para personalizar estimatedDocumentCount():

Propiedad
Descripción

comment(BsonValue comment)

Adjunta un comentario BsonValue a la operación. Para obtener más información, consulta la guía de campos del comando de inserción en el manual de MongoDB Server.

comment(String comment)

Adjunta un comentario String a la operación. Para obtener más información, consulta la guía de campos del comando de inserción en el manual de MongoDB Server.

El siguiente código usa el método estimatedDocumentCount() para estimar la cantidad de documentos en la colección restaurants. También adjunta "Estimated count of all documents" a la operación como un(a) String.

Publisher<Long> countPublisher = restaurants.estimatedDocumentCount(
new EstimatedDocumentCountOptions()
.comment("Estimated count of all documents"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

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