V MongoDB db.collection.count()
metoda vrací počet dokumentů, které by odpovídaly find()
dotaz na kolekci nebo zobrazení.
collection
part je název kolekce nebo pohledu, na kterém se má operace počítání provést.
Všimněte si, že ve skutečnosti neprovádí find()
úkon. Jednoduše spočítá a vrátí počet výsledků, které odpovídají dotazu.
Příklad
Předpokládejme, že máme sbírku nazvanou pets
s následujícími dokumenty:
{ "_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 }
Pro vrácení počtu dokumentů ve sbírce můžeme použít následující dotaz:
db.pets.count()
Výsledek:
7
Toto je ekvivalent provedení následujícího:
db.pets.find().count()
Výsledek:
7
Dokumentace MongoDB ve skutečnosti nedoporučuje používat db.collection.count()
bez dotazovacího predikátu. Je to proto, že metoda vrací výsledky založené na metadatech kolekce, což může vést k přibližnému počtu.
Spočítat výsledek dotazu
Výsledek dotazu můžete spočítat předáním kritérií dotazu.
Příklad:
db.pets.count({
"type": "Dog"
})
Výsledek:
4
V tomto příkladu jsme zjistili, že v kolekci jsou čtyři psi.
Zkontrolujeme počet dalšího dotazu. Tentokrát zjistíme, kolik mazlíčků má hmotnost větší než určité množství.
db.pets.count({
"weight": { $gt: 10 }
})
Výsledek:
3
Omezit počet
Můžete použít limit
parametr k určení maximálního počtu dokumentů, které se mají počítat.
Příklad:
db.pets.count( {}, { limit: 5 } )
Výsledek:
5
Předtím jsme viděli, že v této kolekci je ve skutečnosti 7 dokumentů, ale v tomto příkladu jsme ji omezili na maximálně 5.
Pokud je limit vyšší než skutečný počet, nebude výsledek limit
ovlivněn argument.
Příklad:
db.pets.count( {}, { limit: 10 } )
Výsledek:
7
Přeskočení dokumentů
Můžete počítat pomocí skip
parametr pro přeskočení řady dokumentů před počítáním.
Příklad:
db.pets.count( {}, { skip: 5 } )
Výsledek:
2
Ukončení podpory
Všimněte si, že dokumentace MongoDB uvádí následující:
Ovladače MongoDB kompatibilní s funkcemi 4.0 zastarávají svůj příslušný kurzor a kolekci
count()
Rozhraní API ve prospěch nových rozhraní API procountDocuments()
aestimatedDocumentCount()
. Konkrétní názvy API pro daný ovladač naleznete v dokumentaci ovladače.
Další informace
db.collection.count()
metoda je obal pro count
příkaz.
db.collection.count()
metoda přijímá další parametry, jako je hint
, maxTimeMS
, readConcern
a collation
.
Další informace naleznete v dokumentaci MongoDB.