In MongoDB de db.collection.count()
methode retourneert het aantal documenten dat zou overeenkomen met een find()
vraag voor de verzameling of weergave.
De collection
deel is de naam van de verzameling of weergave waarop de telbewerking moet worden uitgevoerd.
Merk op dat het niet echt een find()
. uitvoert operatie. Het telt gewoon en retourneert het aantal resultaten dat overeenkomt met een zoekopdracht.
Voorbeeld
Stel dat we een verzameling hebben met de naam pets
met de volgende documenten:
{ "_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 }
We kunnen de volgende query gebruiken om het aantal documenten in de collectie te retourneren:
db.pets.count()
Resultaat:
7
Dit komt overeen met het volgende:
db.pets.find().count()
Resultaat:
7
De MongoDB-documentatie raadt het gebruik van db.collection.count()
eigenlijk af zonder een query-predikaat. Dit komt omdat de methode resultaten retourneert op basis van de metadata van de collectie, wat kan resulteren in een geschatte telling.
Tel het resultaat van een zoekopdracht
U kunt het resultaat van een zoekopdracht tellen door de zoekcriteria door te geven.
Voorbeeld:
db.pets.count({
"type": "Dog"
})
Resultaat:
4
In dit voorbeeld kwamen we erachter dat er vier honden in de collectie zijn.
Laten we het aantal van een andere zoekopdracht controleren. Deze keer zullen we ontdekken hoeveel huisdieren een groter gewicht hebben dan een bepaald aantal.
db.pets.count({
"weight": { $gt: 10 }
})
Resultaat:
3
Beperk het aantal
U kunt de limit
. gebruiken parameter om een maximum aantal te tellen documenten op te geven.
Voorbeeld:
db.pets.count( {}, { limit: 5 } )
Resultaat:
5
We hebben eerder gezien dat er eigenlijk 7 documenten in deze collectie zitten, maar in dit voorbeeld hebben we het beperkt tot maximaal 5.
Als de limiet hoger is dan de werkelijke telling, wordt het resultaat niet beïnvloed door de limit
argument.
Voorbeeld:
db.pets.count( {}, { limit: 10 } )
Resultaat:
7
Documenten overslaan
U kunt tellen met de skip
parameter om een aantal documenten over te slaan alvorens te tellen.
Voorbeeld:
db.pets.count( {}, { skip: 5 } )
Resultaat:
2
Beëindiging
Merk op dat de MongoDB-documentatie het volgende vermeldt:
MongoDB-stuurprogramma's die compatibel zijn met de 4.0-functies depreciëren hun respectieve cursor en verzameling
count()
API's voor nieuwe API's voorcountDocuments()
enestimatedDocumentCount()
. Zie de driverdocumentatie voor de specifieke API-namen voor een bepaalde driver.
Meer informatie
De db.collection.count()
methode is een wrapper voor de count
commando.
De db.collection.count()
methode accepteert andere parameters, zoals hint
, maxTimeMS
, readConcern
, en collation
.
Zie de MongoDB-documentatie voor meer informatie.