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

MongoDB countDocuments()

V MongoDB db.collection.countDocuments() metoda vrací počet dokumentů, které odpovídají dotazu pro kolekci nebo pohled.

collection part je název kolekce nebo pohledu, na kterém se má operace počítání provést.

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.countDocuments({})

Výsledek:

7

Spočítat výsledek dotazu

Výsledek dotazu můžete spočítat předáním kritérií dotazu.

Příklad:

db.pets.countDocuments({
    "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.countDocuments({
    "weight": { $gt: 10 }
})

Výsledek:

3

Omezit počet

Používáte limit parametr k určení maximálního počtu dokumentů, které se mají počítat.

Příklad:

db.pets.countDocuments( {}, { 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.countDocuments( {}, { 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.countDocuments( {}, { skip: 5 } )

Výsledek:

2

Ukončení podpory count() ve prospěch countDocuments()

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

countDocuments() metoda se nespoléhá na to, že metadata vrátí počet jako count() metoda dělá. Místo toho provádí agregaci dokumentů, což vede k přesnému počtu (což nelze vždy říci pro count() metoda).

Podle dokumentace MongoDB countDocuments() je přesný i po nečistém vypnutí nebo v přítomnosti osiřelých dokumentů v rozbitém clusteru.

db.collection.count() metoda také přijímá hint parametr a maxTimeMS parametr.

Další informace naleznete v dokumentaci MongoDB.


  1. Co je třída Hadoop Reducer v MapReduce?

  2. RDBTools získal RedisLabs!

  3. Vrácení prvků vnitřního pole z více dokumentů v seřazené podobě

  4. Nelze spustit docker mongo image v systému Windows