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

Commande de comptage MongoDB

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 le count command) en faveur de nouvelles API qui correspondent à countDocuments() et estimatedDocumentCount() . 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.