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

MongoDB countDocuments()

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