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

Příkaz MongoDB count

V MongoDB count Příkaz agregace počítá počet dokumentů v kolekci nebo pohledu.

Vrací dokument, který obsahuje počet i stav příkazu.

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.runCommand( { count: "pets" } )

Výsledek:

{ "n" : 7, "ok" : 1 }

Dokumentace MongoDB ve skutečnosti nedoporučuje používat count příkaz a jeho metody wrapper bez predikátu dotazu. Je to proto, že při spuštění bez predikátu dotazu 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 pomocí následujícího formuláře.

Příklad:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" } 
} )

Výsledek:

{ "n" : 4, "ok" : 1 }

V tomto příkladu můžeme vidět, ž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.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

Výsledek:

{ "n" : 3, "ok" : 1 }

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.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 3
} )

Výsledek:

{ "n" : 3, "ok" : 1 }

Předtím jsme viděli, že ve skutečnosti jsou 4 psi, ale v tomto příkladu jsme to omezili na maximálně 3.

Pokud je limit vyšší než skutečný počet, nebude výsledek limit ovlivněn argument.

Příklad:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 10
} )

Výsledek:

{ "n" : 4, "ok" : 1 }

Přeskočení dokumentů

Můžete použít skip parametr pro přeskočení řady dokumentů před počítáním.

Příklad:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    skip: 2
} )

Výsledek:

{ "n" : 2, "ok" : 1 }

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() API (která spouští count command) ve prospěch nových rozhraní API, která odpovídají countDocuments() a estimatedDocumentCount() . Konkrétní názvy rozhraní API pro daný ovladač naleznete v dokumentaci rozhraní API ovladače.

Další informace

count příkaz obsahuje další pole, jako je hint , comment , readConcern a collation .

Další informace naleznete v dokumentaci MongoDB.


  1. Bitva o databáze NoSQL - Porovnání MongoDB a Firebase

  2. Upgrade HBase nad architekturou Event Sourcing a CQRS za 3 týdny

  3. sudo service mongodb restart dává nerozpoznanou chybu služby v ubuntu 14.0.4

  4. Co znamená příliš mnoho pozičních možností při provádění mongoexportu?