Operator MongoDB $Max

Operator Mongodb Max



MongoDB a venit cu mulți operatori pentru a efectua tranzacții cu scop special, cum ar fi actualizarea înregistrărilor, adăugarea unei noi înregistrări și afișarea înregistrărilor într-o anumită condiție. Unul dintre acești operatori este operatorul „$max”, care este folosit pentru a verifica cea mai mare valoare din înregistrare. În afară de asta, îl putem folosi pentru a actualiza cea mai mică valoare cu o nouă valoare mai mare după ce le comparăm în instrucțiunea funcției „actualizare”. Cealaltă utilizare a operatorului „$max” este să grupeze și să afișeze înregistrările unei anumite colecții astfel încât să poată afișa doar cea mai mare valoare, ignorând cea mai mică valoare atunci când există unele înregistrări duplicate în baza de date. În acest ghid, vom folosi exemple de interogare simple pentru a discuta utilizările menționate anterior ale operatorului „$max” în utilitarul de linie de comandă MongoDB din platforma noastră Windows.

Exemplul 1:

Începând cu ilustrația de discutat și cum funcționează operatorul „$max” în shell-ul MongoDB, trebuie să avem o colecție numită „date” care trebuie deja creată. Pentru a crea această colecție, trebuie să adăugăm câteva înregistrări în ea direct, fără a folosi nicio instrucțiune de „creare”. Instrucțiunea de inserare este suficientă pentru a crea o colecție și pentru a adăuga înregistrările în ea. Folosim funcția „insertMany” în interogare pentru a adăuga patru înregistrări, fiecare având 4 câmpuri de tipuri diferite.

Test > db.data.insertMany ( [ { 'id' : unu , 'Nume' : 'Bravo' , 'Salariu' : 65000 , 'Vârstă' : 44 } ,
... { 'id' : 2 , 'Nume' : 'Ștefan' , 'Salariu' : 77000 , 'Vârstă' : 55 } ,
... { 'id' : 3 , 'Nume' : 'Maria' , 'Salariu' : 42000 , 'Vârstă' : 27 } ,
... { 'id' : 4 , 'Nume' : 'Hawkin' , 'Salariu' : 58000 , 'Vârstă' : 33 } ] )







Comanda de inserare a reușit și mesajul de ieșire arată că înregistrările au fost adăugate.



După inserarea înregistrărilor în colecția de „date” a MongoDB-ului nostru, este timpul să vedeți acele înregistrări pe shell. Astfel, rulăm instrucțiunea funcției „find()” pe MongoDB Cli urmată de funcția „forEach()”, luând argumentul printjson pentru a afișa un rezultat în format JSON. Rezultatul care este afișat în shell arată un total de 4 documente din colecție care sunt afișate în următoarea imagine de ieșire:



Test > db.data.find ( ) .pentru fiecare ( printjson )





Să încercăm operatorul „$max” din comanda de actualizare a MongoDB pentru a modifica înregistrările deja introduse. Astfel, updateOne() este folosit aici pentru a modifica doar o singură înregistrare a colecției de „date”, cum ar fi o înregistrare specifică în care câmpul „id” are valoarea „2”. Operatorul „$max” este aplicat câmpului „Salariu” al colectării „date” pentru a verifica dacă câmpul „Salariu” are o valoare mai mare de 55000. Dacă nu, actualizați înregistrarea cu 55000. Rezultatul de ieșire pentru acest lucru Interogarea funcției updateOne() care arată un număr de modificări „0” deoarece înregistrarea „2” are mai puțin de 55000 de valoare salarială.

Test > db.data.updateOne ( { id: 2 } , { $max : { Salariu: 55000 } } )



După această actualizare, încercăm aceeași interogare a funcției „find()” pentru a afișa rezultatul modificat pe shell-ul liniei de comandă MongoDB. Dar obținem aceeași ieșire pe care am obținut-o înainte de a folosi instrucțiunea „actualizare”. Nu a existat nicio modificare deoarece valoarea 77000 este mai mare decât 55000.

Test > db.data.find ( ) .pentru fiecare ( printjson )

Să încercăm din nou aceeași interogare updateOne() cu o mică modificare. De data aceasta, încercăm valoarea mai mare care este „85000” decât valoarea „77000” care se află deja în câmpul „Salariu” al colectării „date” pentru a face o diferență în rezultatul nostru. Ieșirea arată numărul de modificări „1” de această dată, deoarece valoarea „85000” înlocuiește valoarea deja rezidentă a „77000” în câmp după ce a avut loc comparația doar din cauza operatorului „$max” din această interogare.

Test > db.data.updateOne ( { id: 2 } , { $max : { Salariu: 85000 } } )

După înlocuirea cu succes a valorii mai mici de „77000” cu o nouă valoare de „85000” prin operatorul „$max” al MongoDB, în cele din urmă folosim funcția „find()” din instrucțiunea „db” pentru a verifica această actualizare, indiferent dacă este actualizat cu succes sau nu. Rezultatul arată că valoarea din câmpul „Salariu” a unei a doua înregistrări din această colecție este perfect actualizată.

Test > db.data.find ( ) .pentru fiecare ( printjson )

Exemplul 2:

Să trecem la un alt exemplu pentru a folosi operatorul „$max” din MongoDB. De data aceasta, renunțăm la operatorul „$max” pentru a grupa și afișa înregistrările unice ale unei colecții dacă există duplicate pentru aceleași valori de câmp. Pentru aceasta, inserăm încă 2 înregistrări în colecția de „date” a unei baze de date „test”. Aceste înregistrări conțin aceleași 2 valori în câmpul „Nume” care sunt și în cele 4 înregistrări deja introduse, iar restul sunt diferite. Pentru a insera înregistrările, folosim aceeași instrucțiune „db” care conține funcția „insertMany” pentru ca colecția de „date” să fie actualizată.

Test > db.data.insertMany ( [ { 'id' : 5 , 'Nume' : 'Bravo' , 'Salariu' : 35000 , 'Vârstă' : Patru cinci } ,
{ 'id' : 6 , 'Nume' : 'Hawkin' , 'Salariu' : 67000 , 'Vârstă' : 33 } ] )

Instrucțiunea este executată cu succes.

Acum că sunt adăugate cele 2 înregistrări noi, le puteți afișa și folosind aceeași funcție „găsiți” în instrucțiunea „db” urmată de funcția „forEach”. Următoarea ieșire de afișare din imagine arată cele 2 noi înregistrări la sfârșitul acestei colecții:

Test > db.data.find ( ) .pentru fiecare ( printjson )

După afișarea celor 6 înregistrări de colectare de „date”, suntem gata să realizăm funcția de agregare asupra acesteia. Prin urmare, funcția „agregare” este utilizată în următoarea interogare listată. Cu această funcție, utilizăm operatorul „$group” pentru a grupa înregistrarea unei colecții de „date” în funcție de numele unice ale câmpului „id” și câmpului „Salariu”. Operatorul „$max” este aplicat câmpului „Salariu” al înregistrărilor pentru a obține valorile maxime de afișat. Obțineți cea mai mare valoare din câmpul Salariu în funcție de numele duplicate din câmpul „Nume”, care este folosit ca „id” pentru ca această grupare să fie afișată. Sunt afișate un total de 4 înregistrări. Cea mai mică valoare (din înregistrările duplicate) este ignorată în timp ce este afișată cea mai mare valoare.

db.data.agregate ( [ { $grup : { _id: ' $Name ' , Salariu: { $max : ' $Salariu ' } } } ] )

Concluzie

Primul paragraf al acestui ghid vă ajută să înțelegeți importanța operatorilor care sunt utilizați în MongoDB, în special operatorul „$max” și utilizarea acestuia în shell-ul MongoDB. Acest ghid conține două exemple bazate pe comenzi care sunt legate de operatorul „$max” pentru a-i demonstra scopul. Parcurgând ilustrațiile MongoDB, veți putea efectua câteva tranzacții utile în baza de date, fie că este vorba despre înlocuirea unei înregistrări deja existente cu o valoare nouă sau afișarea înregistrărilor prin gruparea lor prin operatorul „$max”.