I MongoDB er count
aggregeringskommando tæller antallet af dokumenter i en samling eller en visning.
Det returnerer et dokument, der indeholder optællingen såvel som kommandostatus.
Eksempel
Antag, at vi har en samling kaldet pets
med følgende dokumenter:
{ "_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 }
Vi kan bruge følgende forespørgsel til at returnere antallet af dokumenter i samlingen:
db.runCommand( { count: "pets" } )
Resultat:
{ "n" : 7, "ok" : 1 }
MongoDB-dokumentationen fraråder faktisk at bruge count
kommando og dens indpakningsmetoder uden et forespørgselsprædikat. Dette skyldes, at når det køres uden et forespørgselsprædikat, returnerer det resultater baseret på samlingens metadata, hvilket kan resultere i et omtrentligt antal.
Tæl resultatet af en forespørgsel
Du kan tælle resultatet af en forespørgsel ved at bruge følgende formular.
Eksempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" }
} )
Resultat:
{ "n" : 4, "ok" : 1 }
I dette eksempel kan vi se, at der er fire hunde i samlingen.
Lad os tjekke antallet af en anden forespørgsel. Denne gang finder vi ud af, hvor mange kæledyr der har en vægt, der er større end en vis mængde.
db.runCommand( { count:'pets',
query: { weight: { $gt: 10 } }
} )
Resultat:
{ "n" : 3, "ok" : 1 }
Begræns antallet
Du kan bruge limit
parameter for at angive et maksimalt antal dokumenter, der skal tælles.
Eksempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 3
} )
Resultat:
{ "n" : 3, "ok" : 1 }
Vi så før, at der faktisk er 4 hunde, men i dette eksempel begrænsede vi det til maksimalt at tælle 3.
Hvis grænsen er højere end det faktiske antal, vil resultatet ikke blive påvirket af limit
argument.
Eksempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
limit: 10
} )
Resultat:
{ "n" : 4, "ok" : 1 }
Spring af dokumenter over
Du kan bruge skip
parameter for at springe et antal dokumenter over før optælling.
Eksempel:
db.runCommand( {
count: "pets",
query: { type: "Dog" },
skip: 2
} )
Resultat:
{ "n" : 2, "ok" : 1 }
Udvikling
Bemærk, at MongoDB-dokumentationen angiver følgende:
MongoDB-drivere, der er kompatible med 4.0-funktionerne, forælder deres respektive markør og samling
count()
API'er (som kørercount
kommando) til fordel for nye API'er, der svarer tilcountDocuments()
ogestimatedDocumentCount()
. For de specifikke API-navne for en given driver, se driver API-dokumentationen.
Flere oplysninger
count
kommandoen inkluderer andre felter, såsom hint
, comment
, readConcern
, og collation
.
Se MongoDB-dokumentationen for mere information.