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 paracountDocuments()
yestimatedDocumentCount()
. 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.