MongoDB $Max Operator

Mongodb Max Operator



Nagbuo ang MongoDB ng maraming operator upang magsagawa ng mga espesyal na layuning transaksyon tulad ng pag-update ng mga tala, pagdaragdag ng bagong tala, at pagpapakita ng mga talaan sa ilalim ng isang partikular na kundisyon. Ang isa sa mga operator na iyon ay ang operator na '$max' na ginagamit upang suriin ang pinakamalaking halaga sa talaan. Bukod doon, magagamit natin ito upang i-update ang pinakamaliit na halaga na may bagong pinakamalaking halaga pagkatapos ihambing ang mga ito sa pagtuturo ng function na 'update'. Ang iba pang gamit ng operator na '$max' ay upang pangkatin at ipakita ang mga talaan ng isang partikular na koleksyon sa paraang maipapakita lamang nito ang pinakamalaking halaga habang binabalewala ang pinakamaliit na halaga kapag mayroong ilang mga duplicate na tala sa database. Sa gabay na ito, gagamit kami ng mga simpleng halimbawa ng query para talakayin ang mga naunang nabanggit na paggamit ng operator na '$max' sa MongoDB command-line utility sa aming Windows platform.

Halimbawa 1:

Simula sa ilustrasyon upang talakayin at kung paano gumagana ang operator na '$max' sa shell ng MongoDB, kailangan nating magkaroon ng isang koleksyon na pinangalanang 'data' na dapat magawa na. Upang likhain ang koleksyong ito, dapat tayong magdagdag ng ilang mga tala dito nang direkta nang hindi gumagamit ng anumang 'lumikha' na pagtuturo. Ang insert na pagtuturo ay sapat na upang lumikha ng isang koleksyon at magdagdag ng mga talaan dito. Ginagamit namin ang function na 'insertMany' sa query upang magdagdag ng apat na record, bawat isa ay mayroong 4 na field ng iba't ibang uri.

pagsusulit > db.data.insertMany ( [ { 'id' : isa , 'Pangalan' : 'Bravo' , 'Suweldo' : 65000 , 'Edad' : 44 } ,
... { 'id' : 2 , 'Pangalan' : 'Stephen' , 'Suweldo' : 77000 , 'Edad' : 55 } ,
... { 'id' : 3 , 'Pangalan' : 'Maria' , 'Suweldo' : 42000 , 'Edad' : 27 } ,
... { 'id' : 4 , 'Pangalan' : 'Hawkin' , 'Suweldo' : 58000 , 'Edad' : 33 } ] )







Ang insert command ay matagumpay at ang output message ay nagpapakita na ang mga record ay idinagdag.



Pagkatapos ipasok ang mga tala sa koleksyon ng 'data' ng aming MongoDB, oras na upang makita ang mga tala na iyon sa shell. Kaya, pinapatakbo namin ang pagtuturo ng function na 'find()' sa MongoDB Cli na sinusundan ng function na 'forEach()', na ginagawa ang argumento ng printjson upang magpakita ng resulta sa JSON na format. Ang resulta na ipinapakita sa shell ay nagpapakita ng kabuuang 4 na dokumento sa koleksyon na ipinapakita sa sumusunod na imahe ng output:



pagsusulit > db.data.find ( ) .forEach ( printjson )





Subukan natin ang operator na '$max' sa update command ng MongoDB para baguhin ang mga naipasok na record. Kaya, ang updateOne() ay ginagamit dito upang baguhin lamang ang isang tala ng koleksyon ng 'data' tulad ng isang partikular na tala kung saan ang field na 'id' ay may halaga na '2'. Ang operator na '$max' ay inilalapat sa field na 'Salary' ng koleksyon ng 'data' upang suriin kung ang field na 'Salary' ay may halaga na higit sa 55000. Kung hindi, i-update ang record sa 55000. Ang resulta ng output para dito updateOne() function query na nagpapakita ng '0' modification count bilang record '2' ay may mas mababa sa 55000 na halaga ng suweldo.

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



Pagkatapos ng update na ito, sinubukan namin ang parehong 'find()' function query para ipakita ang binagong resulta sa MongoDB command-line shell. Ngunit nakukuha namin ang parehong output na nakuha namin bago gamitin ang pagtuturo na 'pag-update'. Walang pagbabago dahil ang 77000 na halaga ay mas malaki sa 55000.

pagsusulit > db.data.find ( ) .forEach ( printjson )

Subukan nating muli ang parehong updateOne() query na may kaunting pagbabago. Sa pagkakataong ito, sinubukan namin ang mas malaking halaga na '85000' kaysa sa halagang '77000' na naninirahan na sa field na 'Suweldo' ng koleksyon ng 'data' upang makagawa ng pagbabago sa aming output. Ipinapakita ng output ang bilang ng pagbabago na '1' sa pagkakataong ito habang pinapalitan ng value na '85000' ang naninirahan nang value na '77000' sa field pagkatapos mangyari ang paghahambing dahil lang sa operator na '$max' sa query na ito.

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

Matapos matagumpay na palitan ang mas maliit na halaga ng '77000' ng bagong halaga na '85000' sa pamamagitan ng '$max' na operator ng MongoDB, sa wakas ay ginagamit namin ang function na 'find()' sa pagtuturo ng 'db' upang suriin ang update na ito, kung ito ay matagumpay na na-update o hindi. Ipinapakita ng output na ang halaga sa field na 'Suweldo' ng isang 2nd record sa koleksyon na ito ay perpektong na-update.

pagsusulit > db.data.find ( ) .forEach ( printjson )

Halimbawa 2:

Pumunta tayo sa isa pang halimbawa para magamit ang operator na '$max' sa MongoDB. Sa pagkakataong ito, itinapon namin ang operator na '$max' upang ipangkat at ipakita ang mga natatanging talaan ng isang koleksyon kung mayroong anumang mga duplicate para sa parehong mga halaga ng field. Para dito, naglalagay kami ng 2 pang tala sa koleksyon ng 'data' ng isang database ng 'pagsubok'. Ang mga talaan na ito ay naglalaman ng 2 parehong mga halaga sa field na 'Pangalan' na nasa nakapasok na 4 na mga talaan at ang iba ay iba. Upang ipasok ang mga tala, ginagamit namin ang parehong 'db' na pagtuturo na naglalaman ng function na 'insertMany' para sa koleksyon ng 'data' upang ma-update.

pagsusulit > db.data.insertMany ( [ { 'id' : 5 , 'Pangalan' : 'Bravo' , 'Suweldo' : 35000 , 'Edad' : Apat. Lima } ,
{ 'id' : 6 , 'Pangalan' : 'Hawkin' , 'Suweldo' : 67000 , 'Edad' : 33 } ] )

Ang pagtuturo ay matagumpay na naisakatuparan.

Ngayong naidagdag na ang 2 bagong tala, maaari mo ring ipakita ang mga ito gamit ang parehong function na 'hanapin' sa pagtuturo na 'db' na sinusundan ng function na 'forEach'. Ang sumusunod na display output sa larawan ay nagpapakita ng 2 bagong record sa dulo ng koleksyong ito:

pagsusulit > db.data.find ( ) .forEach ( printjson )

Pagkatapos ipakita ang 6 na talaan ng koleksyon ng 'data', handa na kaming gawin ang pinagsama-samang function dito. Samakatuwid, ang function na 'pinagsama-samang' ay ginagamit sa sumusunod na nakalistang query. Gamit ang function na ito, ginagamit namin ang operator na '$group' upang igrupo ang tala ng isang koleksyon ng 'data' ayon sa mga natatanging pangalan ng field na 'id' at ang field na 'Salary'. Ang operator na “$max” ay inilalapat sa field na “Salary” ng mga talaan upang makuha ang pinakamataas na halaga na ipapakita. Kunin ang pinakamalaking halaga mula sa patlang ng Salary ayon sa mga duplicate na pangalan sa field na 'Pangalan' na ginagamit bilang 'id' para ipakita ang pagpapangkat na ito. Isang kabuuang 4 na tala ang ipinapakita. Ang pinakamaliit na halaga (mula sa mga duplicate na tala) ay binabalewala habang ang pinakamalaking halaga ay ipinapakita.

db.data.aggregate ( [ { $grupo : { _id: ' $Pangalan ' , suweldo: { $max : ' $Sahod ' } } } ] )

Konklusyon

Tinutulungan ka ng unang talata ng gabay na ito na maunawaan ang kahalagahan ng mga operator na ginagamit sa MongoDB, lalo na ang operator na '$max' at ang paggamit nito sa shell ng MongoDB. Naglalaman ang gabay na ito ng dalawang halimbawang nakabatay sa command na nauugnay sa operator na '$max' upang ipakita ang layunin nito. Sa pamamagitan ng mga ilustrasyon ng MongoDB, magagawa mong magsagawa ng ilang kapaki-pakinabang na transaksyon sa database, tungkol man ito sa pagpapalit ng dati nang talaan ng bagong halaga o pagpapakita ng mga tala sa pamamagitan ng pagpapangkat sa mga ito sa pamamagitan ng operator na '$max'.