Dans MongoDB, le db.collection.countDocuments()
renvoie le nombre de documents correspondant à la requête d'une collection ou d'une vue.
La collection
part est le nom de la collection ou de la vue sur laquelle effectuer l'opération de comptage.
Exemple
Supposons que nous ayons une collection appelée pets
avec les documents suivants :
{ "_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 }
Nous pouvons utiliser la requête suivante pour renvoyer le nombre de documents dans la collection :
db.pets.countDocuments({})
Résultat :
7
Compter le résultat d'une requête
Vous pouvez compter le résultat d'une requête en transmettant les critères de requête.
Exemple :
db.pets.countDocuments({
"type": "Dog"
})
Résultat :
4
Dans cet exemple, nous avons découvert qu'il y a quatre chiens dans la collection.
Vérifions le nombre d'une autre requête. Cette fois, nous découvrirons combien d'animaux ont un poids supérieur à un certain poids.
db.pets.countDocuments({
"weight": { $gt: 10 }
})
Résultat :
3
Limiter le nombre
Vous utilisez la limit
paramètre pour spécifier un nombre maximum de documents à compter.
Exemple :
db.pets.countDocuments( {}, { limit: 5 } )
Résultat :
5
Nous avons vu précédemment qu'il y a en fait 7 documents dans cette collection, mais dans cet exemple nous l'avons limité pour en compter un maximum de 5.
Si la limite est supérieure au nombre réel, le résultat ne sera pas affecté par la limit
arguments.
Exemple :
db.pets.countDocuments( {}, { limit: 10 } )
Résultat :
7
Ignorer des documents
Vous pouvez compter utiliser le skip
paramètre pour sauter un certain nombre de documents avant de compter.
Exemple :
db.pets.countDocuments( {}, { skip: 5 } )
Résultat :
2
Dépréciation de count()
en faveur de countDocuments()
Notez que la documentation MongoDB indique ce qui suit :
Les pilotes MongoDB compatibles avec les fonctionnalités 4.0 déprécient leur curseur et leur collection respectifs
count()
API en faveur de nouvelles API pourcountDocuments()
etestimatedDocumentCount()
. Pour les noms d'API spécifiques pour un pilote donné, consultez la documentation du pilote.
Plus d'informations
Le countDocuments()
la méthode ne s'appuie pas sur les métadonnées pour renvoyer le nombre comme le count()
méthode le fait. Au lieu de cela, il effectue une agrégation des documents, ce qui se traduit par un décompte précis (ce qui ne peut pas toujours être dit pour le count()
méthode).
Selon la documentation MongoDB, countDocuments()
est précis même après un arrêt incorrect ou en présence de documents orphelins dans un cluster fragmenté.
Le db.collection.count()
la méthode accepte également un hint
paramètre et un maxTimeMS
paramètre.
Consultez la documentation MongoDB pour plus d'informations.