En MongoDB el count
El comando de agregación cuenta el número de documentos en una colección o una vista.
Devuelve un documento que contiene el recuento y el estado del 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.runCommand( { count: "pets" } )
Resultado:
{ "n" : 7, "ok" : 1 }
La documentación de MongoDB en realidad recomienda no usar el count
comando y sus métodos de contenedor sin un predicado de consulta. Esto se debe a que, cuando se ejecuta sin un predicado de consulta, devuelve resultados basados 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 utilizando el siguiente formulario.
Ejemplo:
db.runCommand( {
count: "pets",
query: { type: "Dog" }
} )
Resultado:
{ "n" : 4, "ok" : 1 }
En este ejemplo, podemos ver 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.runCommand( { count:'pets',
query: { weight: { $gt: 10 } }
} )
Resultado:
{ "n" : 3, "ok" : 1 }
Limitar el conteo
Puedes usar el limit
parámetro para especificar un número máximo de documentos para contar.
Ejemplo:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 3
} )
Resultado:
{ "n" : 3, "ok" : 1 }
Vimos antes que en realidad hay 4 perros, pero en este ejemplo lo limitamos a contar un máximo de 3.
Si el límite es superior al recuento real, el resultado no se verá afectado por el limit
argumento.
Ejemplo:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 10
} )
Resultado:
{ "n" : 4, "ok" : 1 }
Omitir documentos
Puedes usar el skip
parámetro para omitir una cantidad de documentos antes de contar.
Ejemplo:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
skip: 2
} )
Resultado:
{ "n" : 2, "ok" : 1 }
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 (que ejecuta elcount
comando) a favor de nuevas API que corresponden acountDocuments()
yestimatedDocumentCount()
. Para conocer los nombres de API específicos para un controlador determinado, consulte la documentación de la API del controlador.
Más información
El count
El comando incluye otros campos, como hint
, comment
, readConcern
y collation
.
Consulte la documentación de MongoDB para obtener más información.