V MongoDB db.collection.estimatedDocumentCount()
metoda vrací počet všech dokumentů v kolekci nebo pohledu.
collection
part je název kolekce nebo pohledu, na kterém se má operace počítání provést.
db.collection.estimatedDocumentCount()
metoda zabalí 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.estimatedDocumentCount()
Výsledek:
7
db.collection.estimatedDocumentCount()
metoda nepoužívá filtr dotazů. Místo toho používá metadata k vrácení počtu dokumentů pro celou kolekci.
Stále však funguje, když je poskytnut s prázdným dokumentem.
db.pets.estimatedDocumentCount({})
Výsledek:
7
maxTimeMS
Parametr
db.collection.estimatedDocumentCount()
metoda přijímá pouze jeden (nepovinný) parametr:maxTimeMS
parametr. To vám umožní nastavit maximální dobu, po kterou může operace počítání běžet.
Příklad:
db.pets.estimatedDocumentCount({}, { maxTimeMS: 5000 })
Výsledek:
7
Ukončení podpory count()
ve prospěch estimatedDocumentCount()
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
Na sdíleném clusteru nebude výsledný počet správně odfiltrovat osiřelé dokumenty.
Také po nečistém vypnutí může být počet nesprávný.
Další informace naleznete v dokumentaci MongoDB.