Cum să numărați documentele cu MongoDB Aggregate Count

Cum Sa Numarati Documentele Cu Mongodb Aggregate Count



După cum sugerează și numele, agregarea $count din MongoDB trebuie utilizată pentru numărarea înregistrărilor de câmp. Una dintre modalitățile populare de a număra înregistrările este utilizarea metodei count(). În plus, anumiți operatori de agregare vă permit să numărați înregistrările aduse dintr-o etapă anterioară a conductei de agregare. În cadrul acestui ghid de astăzi, vom discuta despre agregarea numărului de MongoDB folosind exemple de cod.

Exemplul 01

Pentru a efectua operația $count pe câmpurile unei colecții de baze de date din MongoDB, trebuie să avem numeroase înregistrări. Prin urmare, am creat o colecție numită „Test” și am inserat 12 înregistrări în ea simultan folosind funcția insertMany(). Acum, înregistrările acestei colecții „Test” au fost afișate pe shell-ul MongoDB prin interogarea funcției find(). Puteți vedea că are un total de trei câmpuri:_id, nume și scor.

test> db.Test.find({})







Acum, pentru a aplica etapa $count pe orice câmp, trebuie să folosim funcția de agregare a MongoDB în cadrul instrucțiunii „db”. Funcția de agregare constă din declarația de condiție, folosind adesea operatorul $match pe un anumit câmp, urmată de un câmp nou care afișează numărul total obținut din câmpul de condiție specificat folosind operatorul $count.



În cazul nostru, am folosit operatorul $match pentru a căuta înregistrările care se potrivesc pentru valoarea „60” în câmpul scor, în timp ce operatorul $count a fost folosit pentru a număra numărul total de înregistrări preluate și pentru a le afișa sub câmp nou numit „SameScore”. Ieșirea pentru această interogare a afișat un câmp „SameScore” cu valoarea „2” indicând faptul că există două înregistrări cu valoarea „scorului” „60” este 2 în colecția „Test”.



db.Test.aggregate([ { $match: { 'Scor' : 60 } }, { $count: „Același scor” } ])

De asemenea, puteți utiliza agregarea $count pentru a număra alte câmpuri decât numere, cum ar fi câmpul „nume” al colecției Test. Am folosit agregarea potrivirilor pentru a căuta înregistrarea din colecție în care câmpul de nume are valoarea „Ioan”. Agregarea numărării a numărat cu succes numărul total de înregistrări potrivite, care este 2.





db.Test.aggregate([ { $match: { 'Nume' : 'Ioan' } }, { $count: 'Acelasi nume' } ])

Exemplul 02

Să actualizăm interogarea de mai sus și să aplicăm o altă condiție pentru a obține înregistrări diferite. De data aceasta, vom aplica agregarea $match a câmpului de scor pentru a obține numărul total de înregistrări în care câmpul de scor are o valoare mai mică de 30. Agregarea numărului va număra numărul total de înregistrări și va adăuga la o nouă valoare. coloana „NotaD”. Ieșirea arată rezultatul „2” ca număr de numărare pentru valoarea potrivită.

db.Test.aggregate( [ { $match: { scor: { $lt: 30 } } }, { $număr: 'NotaD' } ] )

De asemenea, puteți utiliza agregarea $count în timp ce aplicați operatorii logici pentru a efectua mai mult de 1 condiție pe înregistrările câmpului. Prin urmare, în câmpul „Scor” au fost aplicate un total de două condiții folosind operatorul $and: gte (mai mare sau egal cu) și lte (mai mic decât și egal cu). Ambele condiții trebuie să fie adevărate pentru a obține rezultatul și a număra înregistrările acestuia. Numărul total arată că există cinci înregistrări cu criteriile de potrivire.



db.Test.aggregate( [ { $match: { '$ și' : [ { 'Scor' : {$gte: 60 }}, { 'Scor' : {$lte: 80 }} ] }},

{ $count: 'Grad B' } ] )

Exemplul 03

În ilustrațiile de mai sus, am folosit agregarea numărului pentru a obține numai numărul de înregistrări potrivite pentru anumite valori de câmp, cum ar fi un scor sau un nume specificat. Metoda de agregare a MongoDB vă permite să obțineți numărul de numărare al tuturor înregistrărilor care conțin valori duplicate din colecție.

Pentru aceasta, trebuie să utilizați agregarea $group în comanda funcției de agregare, ca mai jos. Câmpul _id a fost folosit pentru a specifica câmpul „nume” pe care ar funcționa agregarea numărului. Împreună cu aceasta, câmpul NameCount definit de utilizator va utiliza agregarea $count pentru a număra mai multe duplicate în câmpul „nume”.

Ieșirea pentru această interogare a fost afișată mai jos. Conține valorile din câmpul „nume” și numărul lor de număr în câmpul NameCount în funcție de duplicarea valorilor, cum ar fi Cillian având 4 duplicate și așa mai departe.

db.Test.aggregate([ { $grup: { _id: „$nume” , Număr de nume: { $număr: {} }, }, }, ])

Exemplul 04

Putem folosi, de asemenea, agregarea numărării pe înregistrările de câmp imbricate pentru a număra anumite valori de câmp. Pentru a detalia acest lucru, am creat o colecție numită „Profesor” și am adăugat câmpul imbricat „sub” și câmpul de tip matrice „shift” împreună cu alte câmpuri: nume și plată. Funcția find() a afișat toate cele cinci înregistrări ale acestei colecții.

test> db.Teacher.find({})

Acum, am aplicat funcția de agregare care conține operatorul de potrivire. De asemenea, operatorul $ și a fost aplicat sub-câmpului „matematic” al câmpului „sub”, care conține două condiții diferite. Numărul a fost apoi calculat. Rezultatul arată că există două înregistrări în care subcâmpul matematic are mai mult de 10 și mai puțin de 20 de valori.

db.Teacher.aggregate( [ { $match: { '$ și' : [ { 'sub.matematică' : {$gte: 10 }}, { 'sub.matematică' : {$lte: douăzeci }} ] }}, { $count: 'GradeA' } ] )

Exemplul 05

Să ne uităm la ultimul exemplu pentru a ilustra utilizarea funcției count() de data aceasta în loc să folosim agregarea numărului. Deci, funcția count() a fost aplicată câmpului de tip matrice al colecției „Profesor”, adică „shift”. Folosind indici pentru câmpul matrice folosind indexul 2, am specificat criteriile de potrivire ca „noapte”. Afișează „2” ca număr total de contorizări pentru intrarea „noapte”.

db.Teacher.count({ „shift.2” : 'noapte' })

Într-un mod foarte similar, funcția count() poate fi aplicată și câmpurilor imbricate, cum ar fi subcâmpul „phy” al câmpului „sub” din colecția „Profesor”. Am specificat criteriile de potrivire folosind operatorul „lte” indicând valori mai mici de 14 în subcâmpul „phy”. Ieșirea acestei instrucțiuni a afișat „2”, adică 4 înregistrări cu o valoare mai mică de 14.

db.Teacher.count( { 'sub.phy' : { $lte: 14 } })

Concluzie

Acest ghid a demonstrat și a elaborat utilizarea agregarii $count a MongoDB cu mai multe exemple de cod. Exemplele includ implicarea agregării numărului pentru a prelua numărul de numărare pentru înregistrări de valori specifice și toate înregistrările de câmp prin colecții. De asemenea, include utilizarea agregării numărului pe câmpurile matrice și câmpurile încorporate (imbricate). În cele din urmă, exemplul funcției count() a fost inclus pentru a face diferența între utilizarea agregarii numărătorului și a funcției de numărare.