MongoDB $Max operators

Mongodb Max Operators



MongoDB nāca klajā ar daudziem operatoriem, lai veiktu īpašas darbības, piemēram, ierakstu atjaunināšanu, jauna ieraksta pievienošanu un ierakstu parādīšanu noteiktos apstākļos. Viens no šiem operatoriem ir operators “$max”, ko izmanto, lai pārbaudītu ieraksta lielāko vērtību. Bez tam mēs varam to izmantot, lai atjauninātu mazāko vērtību ar jaunu lielāko vērtību pēc to salīdzināšanas funkcijas “atjaunināšanas” instrukcijā. Otrs operatora “$max” lietojums ir noteiktas kolekcijas ierakstu grupēšana un attēlošana tā, lai tā varētu parādīt tikai lielāko vērtību, vienlaikus ignorējot mazāko vērtību, ja datu bāzē ir daži ierakstu dublikāti. Šajā rokasgrāmatā mēs izmantosim vienkāršus vaicājumu piemērus, lai apspriestu iepriekš minētos operatora “$max” lietojumus MongoDB komandrindas utilītprogrammā mūsu Windows platformā.

1. piemērs:

Sākot ar ilustrāciju, lai apspriestu, kā operators “$max” darbojas MongoDB apvalkā, mums ir jābūt kolekcijai ar nosaukumu “data”, kas jau ir jāizveido. Lai izveidotu šo kolekciju, mums ir jāpievieno daži ieraksti tieši, neizmantojot nekādas “izveidošanas” instrukcijas. Ar ievietošanas instrukciju pietiek, lai izveidotu kolekciju un pievienotu tajā esošos ierakstus. Mēs vaicājumā izmantojam funkciju “insertMany”, lai pievienotu četrus ierakstus, no kuriem katram ir 4 dažāda veida lauki.

pārbaude > db.data.insertMany ( [ { 'id' : viens , 'Vārds' : 'Bravo' , 'Alga' : 65 000 , 'Vecums' : 44 } ,
... { 'id' : 2 , 'Vārds' : 'Stīvens' , 'Alga' : 77 000 , 'Vecums' : 55 } ,
... { 'id' : 3 , 'Vārds' : 'Marija' , 'Alga' : 42 000 , 'Vecums' : 27 } ,
... { 'id' : 4 , 'Vārds' : 'Hawkin' , 'Alga' : 58 000 , 'Vecums' : 33 } ] )







Ievietošanas komanda ir veiksmīga, un izvades ziņojums parāda, ka ieraksti ir pievienoti.



Pēc ierakstu ievietošanas mūsu MongoDB “datu” kolekcijā ir pienācis laiks redzēt šos ierakstus čaulā. Tādējādi MongoDB Cli izpildām funkcijas “find()” instrukciju, kam seko funkcija “forEach()”, izmantojot argumentu printjson, lai parādītu rezultātu JSON formātā. Rezultātā, kas tiek parādīts čaulā, tiek parādīti kopumā 4 kolekcijas dokumenti, kas ir parādīti šādā izvades attēlā:



pārbaude > db.data.find ( ) .katram ( printjson )





Izmēģināsim operatoru “$max” MongoDB atjaunināšanas komandā, lai modificētu jau ievietotos ierakstus. Tādējādi atjauninājumsOne() šeit tiek izmantots, lai modificētu tikai vienu “datu” kolekcijas ierakstu, piemēram, īpašu ierakstu, kurā laukam “id” ir vērtība “2”. Operators “$max” tiek lietots “datu” kolekcijas laukam “Alga”, lai pārbaudītu, vai laukam “Alga” ir vērtība, kas ir lielāka par 55 000. Ja nē, atjauniniet ierakstu ar 55 000. Šī izvades rezultāts. Funkcijas updateOne() vaicājumam, kas parāda “0” modifikāciju skaitu kā ierakstam “2”, ir mazāka par 55 000 algas vērtības.

pārbaude > db.data.updateOne ( { id: 2 } , { Maks. $ : { Alga: 55 000 } } )



Pēc šī atjauninājuma mēs izmēģinām to pašu funkcijas “find()” vaicājumu, lai parādītu modificēto rezultātu MongoDB komandrindas apvalkā. Bet mēs iegūstam to pašu izvadi, ko ieguvām pirms “atjaunināšanas” instrukcijas izmantošanas. Izmaiņu nebija, jo 77000 vērtība ir lielāka par 55000.

pārbaude > db.data.find ( ) .katram ( printjson )

Vēlreiz izmēģināsim to pašu updateOne() vaicājumu ar nelielām izmaiņām. Šoreiz mēs izmēģinām lielāku vērtību, kas ir “85000”, nekā vērtību “77000”, kas jau atrodas “datu” kolekcijas laukā “Alga”, lai mainītu mūsu rezultātu. Izvadā šoreiz tiek parādīts modifikāciju skaits “1”, jo vērtība “85000” laukā aizstāj jau esošo vērtību “77000” pēc tam, kad salīdzināšana notika tikai operatora “$max” dēļ šajā vaicājumā.

pārbaude > db.data.updateOne ( { id: 2 } , { Maks. $ : { Alga: 85 000 } } )

Pēc veiksmīgas mazākās vērtības “77000” aizstāšanas ar jaunu vērtību “85000”, izmantojot MongoDB operatoru “$max”, mēs beidzot izmantojam funkciju “find()” instrukcijā “db”, lai pārbaudītu, vai ir pieejams šis atjauninājums. vai tas ir veiksmīgi atjaunināts vai nē. Izvade parāda, ka šī kolekcijas 2. ieraksta laukā “Alga” esošā vērtība ir lieliski atjaunināta.

pārbaude > db.data.find ( ) .katram ( printjson )

2. piemērs:

Pāriesim pie cita piemēra, lai MongoDB izmantotu operatoru “$max”. Šoreiz mēs atmetam operatoru “$max”, lai grupētu un parādītu kolekcijas unikālos ierakstus, ja vienām un tām pašām lauka vērtībām ir dublikāti. Šim nolūkam mēs ievietojam vēl 2 ierakstus “pārbaudes” datu bāzes “datu” kolekcijā. Šajos ierakstos laukā “Nosaukums” ir 2 tās pašas vērtības, kas ir arī jau ievietotajos 4 ierakstos, un pārējie ir atšķirīgi. Lai ievietotu ierakstus, mēs izmantojam to pašu “db” instrukciju, kurā ir ietverta funkcija “insertMany”, lai “datu” kolekcija tiktu atjaunināta.

pārbaude > db.data.insertMany ( [ { 'id' : 5 , 'Vārds' : 'Bravo' , 'Alga' : 35 000 , 'Vecums' : Četri, pieci } ,
{ 'id' : 6 , 'Vārds' : 'Hawkin' , 'Alga' : 67 000 , 'Vecums' : 33 } ] )

Instrukcija ir veiksmīgi izpildīta.

Tagad, kad ir pievienoti 2 jauni ieraksti, varat arī tos parādīt, izmantojot to pašu “atrast” funkciju “db” instrukcijā, kam seko funkcija “forEach”. Attēlā redzamā displeja izvade parāda 2 jaunus ierakstus šīs kolekcijas beigās:

pārbaude > db.data.find ( ) .katram ( printjson )

Pēc 6 “datu” kolekcijas ierakstu parādīšanas esam gatavi veikt tajā apkopošanas funkciju. Tādējādi funkcija “apkopot” tiek izmantota tālāk norādītajā vaicājumā. Izmantojot šo funkciju, mēs izmantojam operatoru “$group”, lai grupētu “datu” kolekcijas ierakstu atbilstoši lauka “id” un lauka “Alga” unikālajiem nosaukumiem. Operators “$max” tiek lietots ierakstu laukā “Alga”, lai parādītu maksimālās vērtības. Iegūstiet vislielāko vērtību no lauka Alga saskaņā ar dublētajiem nosaukumiem laukā “Vārds”, kas tiek izmantots kā “id”, lai parādītu šo grupu. Kopā tiek parādīti 4 ieraksti. Mazākā vērtība (no ierakstu dublikātiem) tiek ignorēta, kamēr tiek rādīta lielākā vērtība.

db.data.aggregate ( [ { $grupa : { _id: ' $Name ' , Alga: { Maks. $ : ' $Alga ' } } } ] )

Secinājums

Šīs rokasgrāmatas pirmā rindkopa palīdz izprast MongoDB izmantoto operatoru nozīmi, jo īpaši operatoru “$max” un tā izmantošanu MongoDB apvalkā. Šajā rokasgrāmatā ir divi uz komandām balstīti piemēri, kas saistīti ar operatoru “$max”, lai parādītu tā mērķi. Pārlūkojot MongoDB ilustrācijas, jūs varēsiet veikt dažas noderīgas transakcijas datu bāzē neatkarīgi no tā, vai runa ir par jau esoša ieraksta aizstāšanu ar jaunu vērtību vai ierakstu parādīšanu, grupējot tos, izmantojot operatoru “$max”.