Operator MongoDB $Max

Operator Mongodb Max



MongoDB je pripravil številne operaterje za izvajanje transakcij s posebnim namenom, kot je posodabljanje zapisov, dodajanje novega zapisa in prikazovanje zapisov pod določenim pogojem. Eden od teh operatorjev je operator '$max', ki se uporablja za preverjanje največje vrednosti v zapisu. Poleg tega ga lahko uporabimo za posodobitev najmanjše vrednosti z novo največjo vrednostjo, potem ko ju primerjamo v navodilu funkcije »posodobi«. Druga uporaba operatorja »$max« je združevanje in prikazovanje zapisov določene zbirke na način, da lahko prikaže samo največjo vrednost, medtem ko zanemari najmanjšo vrednost, če je v bazi podatkov nekaj podvojenih zapisov. V tem priročniku bomo uporabili preproste primere poizvedb za razpravo o prej omenjenih uporabah operatorja »$max« v pripomočku ukazne vrstice MongoDB na naši platformi Windows.

Primer 1:

Začenši z ilustracijo za razpravo in kako deluje operater '$max' v lupini MongoDB, moramo imeti zbirko z imenom 'data', ki mora biti že ustvarjena. Če želite ustvariti to zbirko, moramo vanjo dodati nekaj zapisov neposredno brez uporabe kakršnih koli navodil »ustvari«. Navodilo za vstavljanje zadostuje za ustvarjanje zbirke in dodajanje zapisov vanjo. V poizvedbi uporabljamo funkcijo »insertMany« za dodajanje štirih zapisov, od katerih ima vsak 4 polja različnih vrst.

test > db.data.insertMany ( [ { 'id' : eno , 'Ime' : 'Bravo' , 'plača' : 65000 , 'starost' : 44 } ,
... { 'id' : 2 , 'Ime' : 'Štefan' , 'plača' : 77000 , 'starost' : 55 } ,
... { 'id' : 3 , 'Ime' : 'Marija' , 'plača' : 42000 , 'starost' : 27 } ,
... { 'id' : 4 , 'Ime' : 'Hawkin' , 'plača' : 58000 , 'starost' : 33 } ] )







Ukaz za vstavljanje je uspešen in izhodno sporočilo kaže, da so zapisi dodani.



Ko vstavimo zapise v zbirko »podatkov« našega MongoDB, je čas, da te zapise vidimo na lupini. Tako zaženemo navodilo funkcije »find()« na MongoDB Cli, ki mu sledi funkcija »forEach()«, pri čemer vzamemo argument printjson za prikaz rezultata v formatu JSON. Rezultat, ki je prikazan v lupini, prikazuje skupno 4 dokumente v zbirki, ki so prikazani na naslednji izhodni sliki:



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





Preizkusimo operator »$max« v ukazu za posodobitev MongoDB, da spremenimo že vstavljene zapise. Tako se updateOne() tukaj uporablja samo za spreminjanje enega samega zapisa zbirke »podatkov«, kot je določen zapis, kjer ima polje »id« vrednost »2«. Operator »$max« se uporabi za polje »Salary« v zbirki »data«, da preveri, ali ima polje »Salary« vrednost, ki je večja od 55000. Če ni, posodobite zapis s 55000. Izhodni rezultat za to Funkcijska poizvedba updateOne(), ki prikazuje število sprememb »0« kot zapis »2«, ima manj kot 55000 vrednosti plače.

test > db.data.updateOne ( { id: 2 } , { $maks : { plača: 55000 } } )



Po tej posodobitvi poskusimo z isto funkcijsko poizvedbo »find()« prikazati spremenjen rezultat v lupini ukazne vrstice MongoDB. Vendar dobimo enak rezultat, kot smo ga dobili pred uporabo navodila »posodobi«. Ni bilo sprememb, ker je vrednost 77000 večja od 55000.

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

Ponovno preizkusimo isto poizvedbo updateOne() z majhno spremembo. Tokrat poskušamo z večjo vrednostjo, ki je »85000«, kot z vrednostjo »77000«, ki se že nahaja v polju »Plača« zbirke »podatkov«, da bi dosegli razliko v naših rezultatih. Izhod tokrat prikazuje število sprememb »1«, saj vrednost »85000« nadomešča že obstoječo vrednost »77000« v polju, potem ko se je primerjava zgodila samo zaradi operatorja »$max« v tej poizvedbi.

test > db.data.updateOne ( { id: 2 } , { $maks : { plača: 85000 } } )

Po uspešni zamenjavi manjše vrednosti »77000« z novo vrednostjo »85000« prek operaterja »$max« MongoDB končno uporabimo funkcijo »find()« v navodilu »db« za preverjanje te posodobitve, ali je uspešno posodobljen ali ne. Izhod kaže, da je vrednost v polju »Plača« 2. zapisa v tej zbirki popolnoma posodobljena.

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

Primer 2:

Preskočimo na drug primer, da uporabimo operator '$max' v MongoDB. Tokrat smo opustili operator »$max« za združevanje in prikaz edinstvenih zapisov zbirke, če obstajajo kakršni koli dvojniki za iste vrednosti polja. Za to vstavimo še 2 zapisa v zbirko 'podatkov' baze podatkov 'test'. Ti zapisi vsebujejo 2 enaki vrednosti v polju »Ime«, ki sta tudi v že vstavljenih 4 zapisih, ostali pa so različni. Za vstavljanje zapisov uporabimo isto navodilo »db«, ki vsebuje funkcijo »insertMany«, da se zbirka »podatkov« posodobi.

test > db.data.insertMany ( [ { 'id' : 5 , 'Ime' : 'Bravo' , 'plača' : 35000 , 'starost' : Štiri, pet } ,
{ 'id' : 6 , 'Ime' : 'Hawkin' , 'plača' : 67000 , 'starost' : 33 } ] )

Navodilo je uspešno izvedeno.

Zdaj, ko sta dodana 2 nova zapisa, ju lahko prikažete tudi z uporabo iste funkcije »find« v navodilu »db«, ki ji sledi funkcija »forEach«. Naslednji prikaz na sliki prikazuje 2 nova zapisa na koncu te zbirke:

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

Po prikazu 6 zapisov zbiranja »podatkov« smo pripravljeni za izvedbo agregatne funkcije na njem. Zato je funkcija »združevanje« uporabljena v naslednji navedeni poizvedbi. S to funkcijo uporabimo operator »$group« za združevanje zapisa zbirke »podatkov« glede na enolična imena polja »id« in polja »Plača«. Operator »$max« se uporabi za polje »Plača« v zapisih, da se prikažejo najvišje vrednosti. Pridobite največjo vrednost iz polja »Plača« glede na podvojena imena v polju »Ime«, ki se uporablja kot »id« za prikaz te skupine. Skupno so prikazani 4 zapisi. Najmanjša vrednost (iz podvojenih zapisov) se prezre, medtem ko se prikaže največja vrednost.

db.data.aggregate ( [ { $skupina : { _id: ' $Name ' , plača: { $maks : ' $Plača ' } } } ] )

Zaključek

Prvi odstavek tega vodnika vam pomaga razumeti pomen operatorjev, ki se uporabljajo v MongoDB, zlasti operaterja »$max« in njegove uporabe v lupini MongoDB. Ta priročnik vsebuje dva primera, ki temeljita na ukazih in sta povezana z operatorjem »$max« za prikaz njegovega namena. Če pogledate ilustracije MongoDB, boste lahko izvedli nekaj uporabnih transakcij v zbirki podatkov, ne glede na to, ali gre za zamenjavo že obstoječega zapisa z novo vrednostjo ali prikazovanje zapisov tako, da jih združite prek operatorja »$max«.