Dans MongoDB, le count
La commande d'agrégation compte le nombre de documents dans une collection ou une vue.
Il renvoie un document contenant le décompte ainsi que le statut de la commande.
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.runCommand( { count: "pets" } )
Résultat :
{ "n" : 7, "ok" : 1 }
La documentation MongoDB recommande en fait de ne pas utiliser le count
command et ses méthodes wrapper sans prédicat de requête. En effet, lorsqu'il est exécuté sans prédicat de requête, il renvoie des résultats basés sur les métadonnées de la collection, ce qui peut donner un nombre approximatif.
Compter le résultat d'une requête
Vous pouvez compter le résultat d'une requête en utilisant le formulaire suivant.
Exemple :
db.runCommand( {
count: "pets",
query: { type: "Dog" }
} )
Résultat :
{ "n" : 4, "ok" : 1 }
Dans cet exemple, nous pouvons voir 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.runCommand( { count:'pets',
query: { weight: { $gt: 10 } }
} )
Résultat :
{ "n" : 3, "ok" : 1 }
Limiter le nombre
Vous pouvez utiliser la limit
paramètre pour spécifier un nombre maximum de documents à compter.
Exemple :
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 3
} )
Résultat :
{ "n" : 3, "ok" : 1 }
Nous avons vu précédemment qu'il y a en fait 4 chiens, mais dans cet exemple nous l'avons limité à un maximum de 3.
Si la limite est supérieure au nombre réel, le résultat ne sera pas affecté par la limit
arguments.
Exemple :
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 10
} )
Résultat :
{ "n" : 4, "ok" : 1 }
Ignorer des documents
Vous pouvez utiliser le skip
paramètre pour sauter un certain nombre de documents avant de compter.
Exemple :
db.runCommand( {
count: "pets",
query: { type: "Dog" },
skip: 2
} )
Résultat :
{ "n" : 2, "ok" : 1 }
Dépréciation
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 (qui exécute lecount
command) en faveur de nouvelles API qui correspondent àcountDocuments()
etestimatedDocumentCount()
. Pour les noms d'API spécifiques pour un pilote donné, consultez la documentation de l'API du pilote.
Plus d'informations
Le count
la commande inclut d'autres champs, tels que hint
, comment
, readConcern
, et collation
.
Consultez la documentation MongoDB pour plus d'informations.