MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Curseur MongoDB.count()

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 pour countDocuments() et estimatedDocumentCount() . 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.