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

MongoDB cursor.count()

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


  1. Problémy MongoDB PHP UTF-8

  2. ServiceStack.Redis:Nelze se připojit:sPort:50071

  3. Spring Boot s chybou serializace relace/Redis se špatnými pověřeními Ldap Active Directory

  4. DigitalOcean pod má neomezené okamžité nároky PersistentVolumeClaims