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

MongoDB cuentaDocumentos()

En MongoDB el db.collection.countDocuments() El método devuelve el recuento de documentos que coinciden con la consulta de una colección o vista.

La collection part es el nombre de la colección o vista para realizar la operación de conteo.

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.countDocuments({})

Resultado:

7

Contar el resultado de una consulta

Puede contar el resultado de una consulta pasando los criterios de consulta.

Ejemplo:

db.pets.countDocuments({
    "type": "Dog"
})

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.countDocuments({
    "weight": { $gt: 10 }
})

Resultado:

3

Limitar el conteo

Usas el limit parámetro para especificar un número máximo de documentos para contar.

Ejemplo:

db.pets.countDocuments( {}, { limit: 5 } )

Resultado:

5

Vimos antes que en realidad hay 7 documentos en esta colección, pero en este ejemplo lo limitamos a contar un máximo de 5.

Si el límite es superior al recuento real, el resultado no se verá afectado por el limit argumento.

Ejemplo:

db.pets.countDocuments( {}, { limit: 10 } )

Resultado:

7

Omitir documentos

Puedes contar usa el skip parámetro para omitir una cantidad de documentos antes de contar.

Ejemplo:

db.pets.countDocuments( {}, { skip: 5 } )

Resultado:

2

Obsoleto de count() a favor de countDocuments()

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.

Más información

El countDocuments() El método no se basa en los metadatos para devolver el recuento como el count() el método lo hace. En su lugar, realiza una agregación de los documentos, lo que da como resultado un recuento preciso (que no siempre se puede decir del count() método).

Según la documentación de MongoDB, countDocuments() es preciso incluso después de un apagado incorrecto o en presencia de documentos huérfanos en un clúster fragmentado.

El db.collection.count() El método también acepta una hint parámetro y un maxTimeMS parámetro.

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