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

Comando de conteo de MongoDB

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 el count comando) a favor de nuevas API que corresponden a countDocuments() y estimatedDocumentCount() . 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.