Operator MongoDB $Min

Operator Mongodb Min



Dacă nu sunteți un utilizator nou de baze de date sau de programare, trebuie să fi încercat programele și interogările care utilizează operatorii de comparație – mai mare decât, mai mic decât, egal cu etc. În MongoDB, unde folosim operatorul „$set” pentru actualizați o anumită înregistrare de câmp sau adăugați o înregistrare nouă în baza de date, putem obține același rezultat folosind operatori de comparație precum „$min” și „$max”. În MongoDB, operatorul „$min” poate fi utilizat în cadrul multor interogări de funcție pentru a actualiza un anumit câmp atunci când o nouă valoare este mai mică decât valoarea deja inserată. De asemenea, poate fi utilizat pentru a grupa și afișa înregistrările unei colecții într-o anumită ordine. Acest ghid vă ajută cu diferite moduri de a renunța la operatorul „$min” din MongoDB.

Exemplul 1:

Începând cu prima ilustrare, demonstrăm utilizarea operatorului „$min” în MongoDB pentru a actualiza o înregistrare deja inserată folosind instrumentul shell MongoDB în sistemul Windows. Prin urmare, trebuie să aveți unele înregistrări care sunt deja adăugate în baza de date. Deci, folosim interogarea funcției insertMany() pentru a adăuga un total de 5 înregistrări în colecția „comandă” a unei baze de date „test”. Fiecare dintre înregistrările introduse, care sunt afișate în ilustrația următoare, conține un total de 4 câmpuri – id, titlu, preț de vânzare și taxă. Aceste date din 5 înregistrări sunt introduse cu succes conform rezultatului atașat:

Test > db.order.insertMany ( [ { 'id' :01, 'Titlu' : 'Săpun' , 'Preț de vânzare' : 500 , 'Impozit' : 24 } ,
... { 'id' :02, 'Titlu' : 'şampon' , 'Preț de vânzare' : 700 , 'Impozit' : 27 } ,
... { 'id' :03, 'Titlu' : 'Detergent' , 'Preț de vânzare' : 400 , 'Impozit' : 22 } ,
... { 'id' :04, 'Titlu' : 'Parfum' , 'Preț de vânzare' : 900 , 'Impozit' : 30 } ,
... { 'id' :05, 'Titlu' : 'Aburi' , 'Preț de vânzare' : 850 , 'Impozit' : 27 } ] )







Este timpul să privim înregistrarea inserată într-o bază de date „de test”. Pentru aceasta, trebuie să eliminați metoda „find()” împreună cu metoda „forEach”, luând „printjson” ca argument în instrucțiunea „db”. Folosind colecția numită „comanda”, avem o înregistrare afișată pe ecran.



Test > db.order.găsi ( ) .pentru fiecare ( printjson )



Este timpul să folosiți operatorul „$min” în interogarea funcției „updateOne” pentru a actualiza o singură înregistrare din colecția „comanda” care tocmai a fost creată. Câmpul „id” este folosit ca identificator unic pentru a actualiza o anumită înregistrare dintr-o bază de date, în timp ce operatorul „$min” este aplicat unui câmp „SalePrice” pentru a-și actualiza valoarea la 600 dacă este mai mică decât valoarea deja inserată. Mesajul de ieșire arată că interogarea a avut succes, dar nu se fac actualizări.





Test > db.order.updateOne ( { id: 3 } , { $min : { Preț de vânzare: 600 } } )

Motivul pentru care nu se face nicio actualizare în câmpul „SalePrice” al celei de-a treia înregistrări este că acesta conține valoarea „400”, care este mai mică de „600″. Prin urmare, operatorul „$min” nu actualizează valoarea minimă de „400” cu o valoare mai mare de „600” conform următoarei interogări find() atașate:



Test > db.order.găsi ( ) .pentru fiecare ( printjson )

Să facem o mică modificare a interogării de actualizare pentru a obține o ieșire diferită de data aceasta. Folosim aceeași instrucțiune „db” care utilizează funcția „updateOne” pentru a modifica o singură înregistrare de „3”. Operatorul „$min” este aplicat câmpului „SalePrice” pentru a-i seta valoarea la „300” dacă valoarea lui „300” este mai mică decât valoarea deja introdusă. Știm că valoarea deja introdusă de „400” a câmpului SalePrice este mai mare decât noua valoare de „300” de comparat. Deci, de data aceasta înlocuiește „400” cu „300”. Mesajul de ieșire arată execuția cu succes a acestei interogări. Numărul modificat = 1 înseamnă că 1 înregistrare este modificată.

Test > db.order.updateOne ( { id: 3 } , { $min : { Preț de vânzare: 300 } } )

După afișarea înregistrărilor unei colecții de „comandă” din baza de date „test” în format JSON prin intermediul instrucțiunii funcției „find()” din shell MongoDB, am constatat că a treia înregistrare este actualizată cu succes. Valoarea 400 a câmpului „SalePrice” este înlocuită cu valoarea 300.

Test > db.order.găsi ( ) .pentru fiecare ( printjson )

Exemplul 2:

În această ilustrație MongoDB, preluăm înregistrările unei anumite baze de date grupându-le cu privire la operatorul „$min” în funcție de valoarea minimă din înregistrări. Să presupunem că aveți aceleași 5 înregistrări în colecția de „comandă” a bazei de date „test” MongoDB și că trebuie să aveți niște date duplicat în anumite câmpuri ale unei baze de date „test”. Pentru aceasta, adăugăm mai multe înregistrări în colecția „comandă” a bazei de date „test”. De data aceasta, inserăm valorile duplicate pentru câmpul „Titlu”. Este folosit într-o clauză „$group” pentru a forma un grup de valori unice. Următoarea ieșire afișează încă 3 înregistrări nou introduse pentru baza de date „test”. Acum, colecția „comanda” are valori duplicate pentru câmpul „Titlu” în comparație cu cele 5 înregistrări vechi. Restul folosește la fel.

După ce aveți un total de 8 înregistrări în colecția „comanda” a bazei de date „test”, este timpul să testați operatorul $min al MongoDB după aplicarea acestuia pe un anumit câmp care este grupat după un alt câmp. Comanda agregată atașată este totul despre asta. Începe cu cuvântul cheie „db” urmat de numele unei colecții dintr-o anumită bază de date și de funcția aggregate(). Funcția de agregare începe cu utilizarea clauzei $group a MongoDB care este folosită în special aici pentru a afișa datele într-un grup privind câmpul „Titlu” al bazei de date „test” unde câmpul „Titlu” este luat ca o cheie unică. .

În același timp, câmpul preț este inițializat separat, ceea ce ia doar înregistrarea valorii minime din totalul de 8 aceleași înregistrări prin operatorul „$min” care i se aplică. Ieșirea acestei execuții de interogare arată afișarea a 5 înregistrări cu o mică actualizare în secțiunea de preț. Puteți vedea că nu sunt afișate înregistrări repetitive. Unele înregistrări unice și de cea mai mică valoare sunt afișate aici.

Test > db.order.agregate ( [ { $grup : { _id: ' $Title ' , Preț: { $min : ' $SalePrice ' } } } ] )

Concluzie

Acest ghid este o colecție de ilustrații MongoDB pentru a afișa un mod simplu posibil de a utiliza operatorul „$min”. Paragraful de introducere este utilizat pentru a discuta scopul utilizării sale în MongoDB. Prima parte a acestui articol discută cum funcționează operatorul „$min” și nu funcționează pentru o singură înregistrare dintr-o bază de date, adică pentru a actualiza sau insera o înregistrare ca valoare minimă. De asemenea, ultimele exemple demonstrează utilizarea acestuia pentru a grupa înregistrarea colecției ca fiind unică în întreaga bază de date.