Dans MongoDB, le cursor.count()
la méthode compte le nombre de documents référencés par un curseur..
Notez qu'il n'exécute pas réellement la requête. Il compte et renvoie simplement le nombre de résultats qui seraient renvoyés par la requête.
Le cursor.count()
method est un wrapper pour le count
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.pets.find().count()
Résultat :
7
Cela équivaut à faire ce qui suit :
db.pets.count()
Résultat :
7
La documentation MongoDB déconseille en fait d'utiliser cursor.count()
quand le find()
La méthode est appelée sans prédicat de requête. En effet, dans de tels cas, les résultats sont basés sur les métadonnées de la collection, ce qui peut donner un décompte approximatif.
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 au find()
méthode.
Exemple :
db.pets.find({"type": "Dog"}).count()
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.find({"weight": { $gt: 10 }}).count()
Résultat :
3
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 en faveur de nouvelles API pourcountDocuments()
etestimatedDocumentCount()
. Pour les noms d'API spécifiques pour un pilote donné, consultez la documentation du pilote.
Le applySkipLimit
Paramètre
Le cursor.count()
La méthode accepte un paramètre facultatif :le applySkipLimit
paramètre.
Ce paramètre spécifie s'il faut prendre en compte les effets du cursor.skip()
et cursor.limit()
méthodes dans le comptage.
Par défaut, il ignore tous les effets de ces deux méthodes. Pour inclure les effets, utilisez appySkipLimit: true
.
Plus d'informations
Consultez la documentation MongoDB pour plus d'informations.