sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB cursor.contar()

En MongoDB el cursor.count() El método cuenta el número de documentos a los que hace referencia un cursor..

Tenga en cuenta que en realidad no realiza la consulta. Simplemente cuenta y devuelve el número de resultados que devolvería la consulta.

El cursor.count() El método es un envoltorio para el count comando.

Ejemplo

Supongamos que tenemos una colección llamada pets con los siguientes documentos:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

Podemos utilizar la siguiente consulta para devolver el número de documentos de la colección:

db.pets.find().count()

Resultado:

7

Esto es equivalente a hacer lo siguiente:

db.pets.count()

Resultado:

7

La documentación de MongoDB en realidad desaconseja el uso de cursor.count() cuando find() se llama al método sin un predicado de consulta. Esto se debe a que, en tales casos, los resultados se basan en los metadatos de la colección, lo que puede generar un recuento aproximado.

Contar el resultado de una consulta

Puede contar el resultado de una consulta pasando los criterios de consulta a find() método.

Ejemplo:

db.pets.find({"type": "Dog"}).count()

Resultado:

4

En este ejemplo, descubrimos que hay cuatro perros en la colección.

Comprobemos el recuento de otra consulta. Esta vez averiguaremos cuántas mascotas tienen un peso superior a una determinada cantidad.

db.pets.find({"weight": { $gt: 10 }}).count()

Resultado:

3

Desactivación

Tenga en cuenta que la documentación de MongoDB establece lo siguiente:

Los controladores MongoDB compatibles con las funciones 4.0 desaprueban sus respectivos cursores y colecciones count() API a favor de nuevas API para countDocuments() y estimatedDocumentCount() . Para conocer los nombres de API específicos para un controlador determinado, consulte la documentación del controlador.

El applySkipLimit Parámetro

El cursor.count() El método acepta un parámetro opcional:el applySkipLimit parámetro.

Este parámetro especifica si considerar los efectos del cursor.skip() y cursor.limit() métodos en el conteo.

Por defecto, ignora cualquier efecto de esos dos métodos. Para incluir los efectos, use appySkipLimit: true .

Más información

Consulte la documentación de MongoDB para obtener más información.