Operator MongoDB $Min

Operator Mongodb Min



Če niste nov uporabnik podatkovnih baz ali programiranja, ste zagotovo preizkusili programe in poizvedbe, ki uporabljajo primerjalne operatorje – večje od, manj kot, enako itd. V MongoDB, kjer uporabljamo operator “$set” za posodobite določen zapis polja ali dodate nov zapis v bazo podatkov, lahko dosežemo enak rezultat tudi z uporabo primerjalnih operatorjev, kot sta “$min” in “$max”. V MongoDB je mogoče uporabiti operator “$min” v številnih funkcijskih poizvedbah za posodobitev določenega polja, ko je nova vrednost manjša od že vstavljene vrednosti. Prav tako se lahko uporablja za združevanje in prikazovanje zapisov zbirke v določenem vrstnem redu. Ta vodnik vam pomaga pri različnih načinih opustitve operaterja »$min« v MongoDB.

Primer 1:

Začenši s prvo ilustracijo, prikazujemo uporabo operaterja “$min” v MongoDB za posodobitev že vstavljenega zapisa z uporabo lupinskega orodja MongoDB v sistemu Windows. Zato morate imeti nekaj zapisov, ki so že dodani vaši bazi podatkov. Torej uporabimo poizvedbo funkcije insertMany(), da dodamo skupaj 5 zapisov v zbirko »vrstni red« baze podatkov »test«. Vsak od vstavljenih zapisov, ki so prikazani na naslednji sliki, vsebuje skupno 4 polja – ID, naslov, prodajna cena in davek. Ti podatki s 5 zapisi so uspešno vstavljeni v skladu s priloženim izhodom:

test > db.order.insertMany ( [ { 'id' :01, 'Naslov' : 'Milo' , 'Prodajna cena' : 500 , 'Davek' : 24 } ,
... { 'id' :02, 'Naslov' : 'šampon' , 'Prodajna cena' : 700 , 'Davek' : 27 } ,
... { 'id' :03, 'Naslov' : 'detergent' , 'Prodajna cena' : 400 , 'Davek' : 22 } ,
... { 'id' :04, 'Naslov' : 'parfum' , 'Prodajna cena' : 900 , 'Davek' : 30 } ,
... { 'id' :05, 'Naslov' : 'megla' , 'Prodajna cena' : 850 , 'Davek' : 27 } ] )







Čas je, da pogledamo vstavljen zapis v 'testno' zbirko podatkov. Za to morate opustiti metodo »find()« skupaj z metodo »forEach«, pri čemer vzamete »printjson« kot argument v navodilu »db«. Z zbirko z imenom »naročilo« imamo na zaslonu prikazan zapis.



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



Skrajni čas je, da uporabite operator »$min« v funkcijski poizvedbi »updateOne«, da posodobite en sam zapis iz zbirke »order«, ki je bila pravkar ustvarjena. Polje »id« se uporablja kot enolični identifikator za posodobitev določenega zapisa iz baze podatkov, medtem ko se operator »$min« uporabi za polje »SalePrice«, da posodobi njegovo vrednost na 600, če je nižja od že vstavljene vrednosti. Izhodno sporočilo kaže, da je poizvedba uspešna, vendar posodobitve niso izvedene.





test > db.order.updateOne ( { id: 3 } , { $ min : { Prodajna cena: 600 } } )

Razlog, zakaj ni posodobljeno polje »SalePrice« 3. zapisa, je, da vsebuje vrednost »400«, ki je manjša od »600«. Zato operator »$min« ne posodobi najmanjše vrednosti »400« z večjo vrednostjo »600« v skladu z naslednjo priloženo poizvedbo find():



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

Malo spremenimo poizvedbo za posodobitev, da bomo tokrat dobili drugačen rezultat. Uporabljamo isto navodilo »db«, ki uporablja funkcijo »updateOne« v njem za spreminjanje enega samega zapisa »3«. Operator »$min« se uporabi za polje »SalePrice«, da nastavi svojo vrednost na »300«, če je vrednost »300« manjša od že vstavljene vrednosti. Vemo, da je že vstavljena vrednost »400« polja SalePrice večja od nove vrednosti »300« za primerjavo. Torej, tokrat nadomesti '400' s '300'. Izhodno sporočilo prikazuje uspešno izvedbo te poizvedbe. Spremenjeno število = 1 pomeni, da je spremenjen 1 zapis.

test > db.order.updateOne ( { id: 3 } , { $ min : { Prodajna cena: 300 } } )

Po prikazu zapisov zbirke »naročil« iz baze podatkov »test« v formatu JSON prek navodil funkcije »find()« v lupini MongoDB smo ugotovili, da je 3. zapis uspešno posodobljen. Vrednost 400 v polju »SalePrice« se nadomesti z vrednostjo 300.

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

Primer 2:

Znotraj te ilustracije MongoDB pridobimo zapise določene zbirke podatkov tako, da jih združimo glede na operator »$min« glede na najmanjšo vrednost v zapisih. Predpostavimo, da imate istih 5 zapisov v zbirki »vrstni red« baze podatkov »test« MongoDB in morate imeti nekaj podvojenih podatkov v določenih poljih baze podatkov »test«. Za to dodamo več zapisov v zbirko »naročil« baze podatkov »test«. Tokrat vstavimo podvojene vrednosti za polje »Naslov«. Uporablja se v klavzuli »$group« za oblikovanje skupine edinstvenih vrednosti. Naslednji izhod prikazuje na novo vstavljene 3 dodatne zapise za »testno« bazo podatkov. Zdaj ima zbirka »naročilo« podvojene vrednosti za polje »Naslov« v primerjavi s 5 starimi zapisi. Ostalo uporablja isto.

Potem ko imamo skupno 8 zapisov v zbirki »vrstni red« baze podatkov »test«, je čas, da preizkusimo operater $min MongoDB po njegovi uporabi na določenem polju, ki je združeno z drugim poljem. Priloženi agregatni ukaz govori o tem. Začne se s ključno besedo »db«, ki ji sledi ime zbirke v določeni bazi podatkov in funkcija aggregate(). Združevalna funkcija se začne z uporabo klavzule $group MongoDB, ki se tukaj posebej uporablja za prikaz podatkov v skupini v zvezi s poljem »Naslov« baze podatkov »test«, kjer je polje »Naslov« vzeto kot edinstven ključ .

Istočasno se polje s ceno inicializira ločeno, kar vzame samo zapis najmanjše vrednosti od skupno 8 enakih zapisov prek operaterja »$min«, ki je uporabljen zanj. Rezultat te izvedbe poizvedbe prikazuje prikaz 5 zapisov z malo posodobitvijo v razdelku s cenami. Vidite lahko, da niso prikazani nobeni ponavljajoči se zapisi. Tukaj je prikazanih nekaj edinstvenih in najmanjših zapisov vrednosti.

test > db.order.aggregate ( [ { $skupina : { _id: ' $Title ' , cena: { $ min : ' $SalePrice ' } } } ] )

Zaključek

Ta priročnik je zbirka ilustracij MongoDB za prikaz preprostega možnega načina uporabe operatorja “$min”. Uvodni odstavek je uporabljen za razpravo o namenu njegove uporabe v MongoDB. Prvi del tega članka obravnava, kako operater »$min« deluje in ne deluje za en sam zapis v zbirki podatkov, tj. za posodobitev ali vstavljanje zapisa kot minimalne vrednosti. Prav tako zadnji primeri prikazujejo njegovo uporabo za združevanje zapisa zbirke kot edinstvenega v celotni bazi podatkov.