V MongoDB cursor.count()
metoda počítá počet dokumentů, na které odkazuje kurzor..
Všimněte si, že ve skutečnosti neprovádí dotaz. Jednoduše spočítá a vrátí počet výsledků, které by dotaz vrátil.
cursor.count()
metoda je obal pro count
příkaz.
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.find().count()
Výsledek:
7
Toto je ekvivalent provedení následujícího:
db.pets.count()
Výsledek:
7
Dokumentace MongoDB ve skutečnosti nedoporučuje používat cursor.count()
když find()
metoda se volá bez predikátu dotazu. Je to proto, že v takových případech jsou výsledky založeny na metadatech sbírky, 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 do find()
metoda.
Příklad:
db.pets.find({"type": "Dog"}).count()
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.find({"weight": { $gt: 10 }}).count()
Výsledek:
3
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.
Položka applySkipLimit
Parametr
cursor.count()
metoda přijímá jeden volitelný parametr:applySkipLimit
parametr.
Tento parametr určuje, zda se mají vzít v úvahu účinky cursor.skip()
a cursor.limit()
metody v počtu.
Ve výchozím nastavení ignoruje všechny účinky těchto dvou metod. Chcete-li zahrnout efekty, použijte appySkipLimit: true
.
Další informace
Další informace naleznete v dokumentaci MongoDB.