MongoDB $Max operaator

Mongodb Max Operaator



MongoDB mõtles välja palju operaatoreid, et teha eriotstarbelisi tehinguid, nagu kirjete värskendamine, uue kirje lisamine ja kirjete kuvamine teatud tingimustel. Üks neist operaatoritest on operaator „$max”, mida kasutatakse kirje suurima väärtuse kontrollimiseks. Peale selle saame seda kasutada väikseima väärtuse värskendamiseks uue suurima väärtusega pärast nende võrdlemist funktsiooni 'värskendamise' juhistes. Operaatori “$max” teine ​​kasutusviis on teatud kogumi kirjete rühmitamine ja kuvamine nii, et see suudab kuvada ainult suurimat väärtust, ignoreerides samal ajal väikseimat väärtust, kui andmebaasis on duplikaatkirjeid. Selles juhendis kasutame lihtsaid päringunäiteid, et arutada operaatori „$max” eelmainitud kasutusviise MongoDB käsurea utiliidis meie Windowsi platvormil.

Näide 1:

Alustades illustratsioonist, et arutada ja kuidas operaator '$max' töötab MongoDB kestas, peab meil olema kogu nimega 'data', mis tuleb juba luua. Selle kogu loomiseks peame sellesse lisama mõned kirjed otse ilma loomisjuhiseid kasutamata. Kogumiku loomiseks ja sellesse kirjete lisamiseks piisab sisestamisjuhisest. Me kasutame päringus funktsiooni 'insertMany', et lisada neli kirjet, millest igaühel on 4 erinevat tüüpi välja.

test > db.data.insertMany ( [ { 'id' : üks , 'nimi' : 'Braavo' , 'palk' : 65 000 , 'vanus' : 44 } ,
... { 'id' : 2 , 'nimi' : 'Stephen' , 'palk' : 77 000 , 'vanus' : 55 } ,
... { 'id' : 3 , 'nimi' : 'Maria' , 'palk' : 42000 , 'vanus' : 27 } ,
... { 'id' : 4 , 'nimi' : 'Hawkin' , 'palk' : 58 000 , 'vanus' : 33 } ] )







Lisamise käsk on edukas ja väljundsõnum näitab, et kirjed on lisatud.



Pärast kirjete sisestamist meie MongoDB 'andmete' kogusse on aeg näha neid kirjeid kestas. Seega käivitame MongoDB Cli-s funktsiooni „find()” käsu, millele järgneb funktsioon „forEach()”, võttes tulemuse JSON-vormingus kuvamiseks printjsoni argumendi. Kestas kuvatav tulemus näitab kogus kokku 4 dokumenti, mis on näidatud järgmisel väljundpildil:



test > db.data.find ( ) .igaühele ( printjson )





Proovime MongoDB värskenduskäsu operaatorit $max, et muuta juba sisestatud kirjeid. Seega kasutatakse updateOne() siin ainult ühe 'andmekogu' kirje muutmiseks, näiteks konkreetse kirje, kus välja 'id' väärtus on '2'. Operaatorit “$max” rakendatakse andmete kogumise väljale “Palk”, et kontrollida, kas välja “Palk” väärtus on suurem kui 55000. Kui ei, värskendage kirjet väärtusega 55000. Selle väljundtulemus Funktsiooni updateOne() päringul, mis näitab muudatuste arvu '0', kui kirje '2' on väiksem kui 55 000 palgaväärtust.

test > db.data.updateOne ( { id: 2 } , { $max : { Palk: 55 000 } } )



Pärast seda värskendust proovime sama funktsiooni 'find()' päringut, et kuvada muudetud tulemus MongoDB käsurea kestas. Kuid saame sama väljundi, mille saime enne värskendamisjuhise kasutamist. Muutust ei toimunud, kuna 77000 väärtus on suurem kui 55000.

test > db.data.find ( ) .igaühele ( printjson )

Proovime sama updateOne() päringut veel kord väikese muudatusega. Seekord proovime suuremat väärtust, mis on “85000”, kui väärtust “77000”, mis juba asub “andmete” väljal “Palk”, et oma väljundit muuta. Väljund näitab seekord muudatuste arvu '1', kuna väärtus '85000' asendab väljal juba olemasolevat väärtust '77000' pärast seda, kui võrdlus toimus ainult selle päringu operaatori '$max' tõttu.

test > db.data.updateOne ( { id: 2 } , { $max : { Palk: 85 000 } } )

Pärast väiksema väärtuse '77000' edukat asendamist uue väärtusega '85000' MongoDB operaatori '$max' kaudu kasutame lõpuks selle värskenduse kontrollimiseks 'db' juhises funktsiooni 'find()'. kas selle värskendamine õnnestus või mitte. Väljund näitab, et selle kogumiku 2. kirje välja „Palk” väärtus on suurepäraselt uuendatud.

test > db.data.find ( ) .igaühele ( printjson )

Näide 2:

Liigume teise näite juurde, et kasutada MongoDB operaatorit '$max'. Seekord jätame välja operaatori „$max”, et rühmitada ja kuvada kogu kordumatuid kirjeid, kui samade välja väärtuste jaoks on duplikaate. Selleks sisestame veel 2 kirjet 'test' andmebaasi 'andmete' kogusse. Need kirjed sisaldavad väljal 'Nimi' 2 sama väärtust, mis on ka juba sisestatud neljal kirjel ja ülejäänud on erinevad. Kirjete sisestamiseks kasutame sama 'db' käsku, mis sisaldab 'andmekogu' värskendamiseks funktsiooni 'insertMany'.

test > db.data.insertMany ( [ { 'id' : 5 , 'nimi' : 'Braavo' , 'palk' : 35 000 , 'vanus' : Neli, viis } ,
{ 'id' : 6 , 'nimi' : 'Hawkin' , 'palk' : 67 000 , 'vanus' : 33 } ] )

Käsk täidetakse edukalt.

Nüüd, kui 2 uut kirjet on lisatud, saate neid kuvada, kasutades sama 'leida' funktsiooni 'db' käsus, millele järgneb funktsioon 'forEach'. Järgmine pildi kuvaväljund näitab 2 uut kirjet selle kogu lõpus:

test > db.data.find ( ) .igaühele ( printjson )

Pärast 'andmete' kogumise 6 kirje kuvamist oleme valmis täitma selle koondamisfunktsiooni. Seetõttu kasutatakse järgmises loetletud päringus funktsiooni 'koond'. Selle funktsiooniga kasutame operaatorit “$group”, et rühmitada “andmekogu” kirje vastavalt välja “id” ja välja “Palk” kordumatutele nimedele. Kirjete väljale 'Palk' rakendatakse operaatorit '$max', et kuvada maksimaalsed väärtused. Hankige väljalt Palk suurima väärtuse vastavalt duplikaatnimedele väljal 'Nimi', mida kasutatakse selle rühmituse kuvamisel ID-na. Kokku kuvatakse 4 kirjet. Väikseimat väärtust (duplikaatkirjetest) ignoreeritakse, kui kuvatakse suurim väärtus.

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

Järeldus

Selle juhendi esimene lõik aitab teil mõista MongoDB-s kasutatavate operaatorite tähtsust, eriti operaatori '$max' ja selle kasutamist MongoDB kestas. See juhend sisaldab kahte käsupõhist näidet, mis on seotud operaatoriga '$max', et näidata selle eesmärki. MongoDB illustratsioone läbides saate andmebaasis teha mõningaid kasulikke tehinguid, olgu selleks siis juba olemasoleva kirje asendamine uue väärtusega või kirjete kuvamine, rühmitades need operaatori '$max' kaudu.