MongoDB $Max operator

Mongodb Max Operator



MongoDB je osmislio mnoge operatore za izvođenje transakcija posebne namjene poput ažuriranja zapisa, dodavanja novog zapisa i prikazivanja zapisa pod određenim uvjetima. Jedan od tih operatora je operator “$max” koji se koristi za provjeru najveće vrijednosti u zapisu. Osim toga, možemo ga koristiti za ažuriranje najmanje vrijednosti s novom najvećom vrijednošću nakon što ih usporedimo u uputama funkcije 'ažuriraj'. Druga upotreba operatora “$max” je grupiranje i prikaz zapisa određene zbirke na način da se može prikazati samo najveća vrijednost dok se najmanja vrijednost zanemaruje kada u bazi podataka postoje neki dvostruki zapisi. U ovom ćemo vodiču koristiti jednostavne primjere upita kako bismo raspravljali o prethodno spomenutoj upotrebi operatora “$max” u uslužnom programu MongoDB retka za naredbe na našoj Windows platformi.

Primjer 1:

Počevši od ilustracije za raspravu i načina na koji operator “$max” radi u ljusci MongoDB, moramo imati kolekciju pod nazivom “podaci” koja već mora biti kreirana. Da bismo stvorili ovu zbirku, moramo dodati neke zapise u nju izravno bez upotrebe ikakvih uputa 'kreiraj'. Uputa za umetanje dovoljna je za stvaranje zbirke i dodavanje zapisa u nju. Koristimo funkciju 'insertMany' u upitu za dodavanje četiri zapisa, od kojih svaki ima 4 polja različitih vrsta.

test > db.data.insertMany ( [ { 'iskaznica' : jedan , 'Ime' : 'Bravo' , 'Plaća' : 65000 , 'Dob' : 44 } ,
... { 'iskaznica' : 2 , 'Ime' : 'Stjepan' , 'Plaća' : 77000 , 'Dob' : 55 } ,
... { 'iskaznica' : 3 , 'Ime' : 'Marija' , 'Plaća' : 42000 , 'Dob' : 27 } ,
... { 'iskaznica' : 4 , 'Ime' : 'Hawkin' , 'Plaća' : 58000 , 'Dob' : 33 } ] )







Naredba za umetanje je uspješna i izlazna poruka pokazuje da su zapisi dodani.



Nakon umetanja zapisa u kolekciju 'podataka' našeg MongoDB-a, vrijeme je da te zapise vidite na ljusci. Stoga pokrećemo instrukciju funkcije “find()” na MongoDB Cliju nakon koje slijedi funkcija “forEach()”, uzimajući argument printjson za prikaz rezultata u JSON formatu. Rezultat koji je prikazan u ljusci prikazuje ukupno 4 dokumenta u kolekciji koji su prikazani na sljedećoj izlaznoj slici:



test > db.data.find ( ) .za svakoga ( printjson )





Isprobajmo operator '$max' u naredbi ažuriranja MongoDB-a za izmjenu već umetnutih zapisa. Stoga se updateOne() ovdje koristi samo za izmjenu jednog zapisa zbirke 'podataka' poput specifičnog zapisa gdje polje 'id' ima vrijednost '2'. Operator “$max” primjenjuje se na polje “Plaća” zbirke “podataka” kako bi se provjerilo ima li polje “Plaća” vrijednost veću od 55000. Ako nema, ažurirajte zapis s 55000. Izlazni rezultat za ovo updateOne() upit funkcije koji pokazuje broj izmjena '0' jer zapis '2' ima manje od 55000 vrijednosti plaće.

test > db.data.updateOne ( { iskaznica: 2 } , { $maks : { Plaća: 55000 } } )



Nakon ovog ažuriranja, pokušavamo s istim 'find()' upitom funkcije prikazati izmijenjeni rezultat na ljusci naredbenog retka MongoDB. Ali dobivamo isti izlaz koji smo dobili prije korištenja instrukcije 'ažuriranja'. Nije bilo promjene jer je vrijednost 77000 veća od 55000.

test > db.data.find ( ) .za svakoga ( printjson )

Isprobajmo još jednom isti updateOne() upit uz male izmjene. Ovaj put pokušavamo s većom vrijednošću koja je '85000' od vrijednosti '77000' koja se već nalazi u polju 'Plaća' zbirke 'podataka' kako bismo napravili razliku u našem rezultatu. Izlaz pokazuje broj izmjena '1' ovaj put jer vrijednost '85000' zamjenjuje već postojeću vrijednost '77000' u polju nakon što se usporedba dogodila samo zbog operatora '$max' u ovom upitu.

test > db.data.updateOne ( { iskaznica: 2 } , { $maks : { Plaća: 85000 } } )

Nakon uspješne zamjene manje vrijednosti od “77000” novom vrijednošću od “85000” putem operatora “$max” MongoDB-a, konačno koristimo funkciju “find()” u uputama “db” za provjeru ovog ažuriranja, da li je uspješno ažuriran ili ne. Izlaz pokazuje da je vrijednost u polju 'Plaća' drugog zapisa u ovoj zbirci savršeno ažurirana.

test > db.data.find ( ) .za svakoga ( printjson )

Primjer 2:

Prijeđimo na drugi primjer kako bismo iskoristili operator '$max' u MongoDB-u. Ovaj put odbacujemo operator “$max” za grupiranje i prikaz jedinstvenih zapisa zbirke ako postoje duplikati za iste vrijednosti polja. U tu svrhu umećemo još 2 zapisa u kolekciju 'podataka' 'testne' baze podataka. Ovi zapisi sadrže 2 iste vrijednosti u polju 'Ime' koje se također nalaze u već umetnuta 4 zapisa, a ostali su različiti. Za umetanje zapisa koristimo istu 'db' instrukciju koja u sebi sadrži funkciju 'insertMany' za ažuriranje kolekcije 'podataka'.

test > db.data.insertMany ( [ { 'iskaznica' : 5 , 'Ime' : 'Bravo' , 'Plaća' : 35000 , 'Dob' : Četiri pet } ,
{ 'iskaznica' : 6 , 'Ime' : 'Hawkin' , 'Plaća' : 67000 , 'Dob' : 33 } ] )

Instrukcija je uspješno izvršena.

Sada kada su dodana 2 nova zapisa, možete ih prikazati pomoću iste funkcije 'pronađi' u uputama 'db' nakon koje slijedi funkcija 'forEach'. Sljedeći prikaz na slici prikazuje 2 nova zapisa na kraju ove zbirke:

test > db.data.find ( ) .za svakoga ( printjson )

Nakon prikaza 6 zapisa prikupljanja “podataka”, spremni smo izvršiti agregatnu funkciju na njima. Stoga se funkcija 'agregat' koristi u sljedećem upitu na popisu. S ovom funkcijom koristimo operator '$group' za grupiranje zapisa zbirke 'podataka' prema jedinstvenim nazivima polja 'id' i polja 'Plaća'. Operator “$max” primjenjuje se na polje “Plaća” u zapisima kako bi se dobile maksimalne vrijednosti za prikaz. Dobijte najveću vrijednost iz polja 'Plaća' u skladu s dvostrukim imenima u polju 'Ime' koje se koristi kao 'id' za prikaz ove grupe. Prikazana su ukupno 4 zapisa. Najmanja vrijednost (iz dupliciranih zapisa) se zanemaruje dok se prikazuje najveća vrijednost.

db.data.agregat ( [ { $grupa : { _iskaznica: ' $Name ' , Plaća: { $maks : ' $Plaća ' } } } ] )

Zaključak

Prvi odlomak ovog vodiča pomaže vam razumjeti važnost operatora koji se koriste u MongoDB-u, posebno operatora “$max” i njegove upotrebe u ljusci MongoDB-a. Ovaj vodič sadrži dva primjera temeljena na naredbama koji su povezani s operatorom “$max” kako bi se pokazala njegova svrha. Prolazeći kroz ilustracije MongoDB-a, moći ćete izvršiti neke korisne transakcije u bazi podataka, bilo da se radi o zamjeni postojećeg zapisa novom vrijednošću ili prikazu zapisa grupiranjem putem operatora '$max'.