sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB db.collection.count()

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 pro countDocuments() a estimatedDocumentCount() . 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.


  1. Aktualizace velkého počtu záznamů v kolekci

  2. TTL pro člena sady

  3. docker-compose + django + redis - Chyba 111 při připojování k 127.0.0.1:6379. Spojení odmítnuto

  4. Fronta Bull:Když úloha selže, jak zastavit frontu ve zpracování zbývajících úloh?