In MongoDB de count
aggregatieopdracht telt het aantal documenten in een verzameling of een weergave.
Het geeft een document terug dat zowel de telling als de opdrachtstatus bevat.
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.runCommand( { count: "pets" } )
Resultaat:
{ "n" : 7, "ok" : 1 }
De MongoDB-documentatie raadt eigenlijk af om de count
. te gebruiken commando en de bijbehorende wrapper-methoden zonder een query-predikaat. Dit komt omdat, wanneer het wordt uitgevoerd zonder een query-predicaat, het 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 het volgende formulier te gebruiken.
Voorbeeld:
db.runCommand( {
count: "pets",
query: { type: "Dog" }
} )
Resultaat:
{ "n" : 4, "ok" : 1 }
In dit voorbeeld kunnen we zien dat er vier honden in de verzameling 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.runCommand( { count:'pets',
query: { weight: { $gt: 10 } }
} )
Resultaat:
{ "n" : 3, "ok" : 1 }
Beperk het aantal
U kunt de limit
. gebruiken parameter om een maximum aantal te tellen documenten op te geven.
Voorbeeld:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 3
} )
Resultaat:
{ "n" : 3, "ok" : 1 }
We hebben eerder gezien dat er eigenlijk 4 honden zijn, maar in dit voorbeeld hebben we het beperkt tot maximaal 3.
Als de limiet hoger is dan de werkelijke telling, wordt het resultaat niet beïnvloed door de limit
argument.
Voorbeeld:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 10
} )
Resultaat:
{ "n" : 4, "ok" : 1 }
Documenten overslaan
U kunt de skip
. gebruiken parameter om een aantal documenten over te slaan alvorens te tellen.
Voorbeeld:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
skip: 2
} )
Resultaat:
{ "n" : 2, "ok" : 1 }
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 (die decount
uitvoeren) command) ten gunste van nieuwe API's die overeenkomen metcountDocuments()
enestimatedDocumentCount()
. Voor de specifieke API-namen voor een bepaalde driver, zie de driver API-documentatie.
Meer informatie
De count
commando bevat andere velden, zoals hint
, comment
, readConcern
, en collation
.
Zie de MongoDB-documentatie voor meer informatie.