MongoDB $Min operaator

Mongodb Min Operaator



Kui te pole andmebaaside või programmeerimise uus kasutaja, peate olema proovinud programme ja päringuid, mis kasutavad võrdlusteateid – suurem kui, väiksem, võrdne jne. MongoDB-s, kus me kasutame operaatorit '$set' Värskendage konkreetset väljakirjet või lisage andmebaasi uus kirje, saame sama tulemuse saavutada ka võrdlusoperaatorite nagu “$min” ja “$max” abil. MongoDB-s saab operaatorit '$min' kasutada paljudes funktsioonipäringutes, et värskendada konkreetset välja, kui uus väärtus on väiksem kui juba sisestatud väärtus. Samuti saab seda kasutada kollektsiooni kirjete rühmitamiseks ja kuvamiseks kindlas järjekorras. See juhend aitab teil leida erinevaid viise, kuidas MongoDB-s operaatorit '$min' eemaldada.

Näide 1:

Alustades esimesest illustratsioonist, demonstreerime operaatori '$min' kasutamist MongoDB-s juba sisestatud kirje värskendamiseks, kasutades Windowsi süsteemis MongoDB kestatööriista. Seetõttu peavad teil olema mõned kirjed, mis on teie andmebaasi juba lisatud. Seega kasutame funktsiooni insertMany() päringut, et lisada kokku 5 kirjet 'test' andmebaasi 'order' kogusse. Kõik sisestatud kirjed, mis on näidatud järgmisel joonisel, sisaldavad kokku 4 välja – ID, pealkiri, müügihind ja maks. Need 5-kirjelised andmed on edukalt sisestatud vastavalt lisatud väljundile:

test > db.order.insertMany ( [ { 'id' :01, 'Pealkiri' : 'Seep' , 'Müügihind' : 500 , 'Maks' : 24 } ,
... { 'id' :02, 'Pealkiri' : 'Šampoon' , 'Müügihind' : 700 , 'Maks' : 27 } ,
... { 'id' :03, 'Pealkiri' : 'Pesuaine' , 'Müügihind' : 400 , 'Maks' : 22 } ,
... { 'id' :04, 'Pealkiri' : 'Parfüüm' , 'Müügihind' : 900 , 'Maks' : 30 } ,
... { 'id' :05, 'Pealkiri' : 'Udu' , 'Müügihind' : 850 , 'Maks' : 27 } ] )







On aeg vaadata sisestatud kirjet 'testi' andmebaasis. Selleks peate eemaldama meetodi 'find()' koos meetodiga 'forEach', võttes 'db' juhises argumendiks 'printjson'. Kasutades kollektsiooni nimega “tellimus”, kuvatakse ekraanil kirje.



test > db.tellimus.leida ( ) .igaühele ( printjson )



On viimane aeg kasutada funktsiooni „updateOne” päringus operaatorit „$min”, et värskendada üht kirjet äsja loodud kogust „order”. Välja „id” kasutatakse unikaalse identifikaatorina konkreetse kirje värskendamiseks andmebaasist, samas kui operaatorit „$min” rakendatakse väljale „SalePrice”, et värskendada selle väärtust 600-ni, kui see on juba sisestatud väärtusest väiksem. Väljundsõnum näitab, et päring on edukas, kuid värskendusi ei tehta.





test > db.order.updateOne ( { id: 3 } , { $min : { Müügihind: 600 } } )

Põhjus, miks 3. kirje väljale „SalePrice” ei värskendata, on see, et see sisaldab väärtust „400”, mis on väiksem kui „600”. Seetõttu ei värskenda operaator '$min' minimaalset väärtust '400' suurema väärtusega '600' vastavalt järgmisele lisatud otsingupäringule:



test > db.tellimus.leida ( ) .igaühele ( printjson )

Teeme värskenduspäringus veidi muudatusi, et saada seekord teistsugune väljund. Me kasutame sama 'db' käsku, mis kasutab 'updateOne' funktsiooni, et muuta ühte kirjet '3'. Operaatorit „$min” rakendatakse väljale „SalePrice”, et määrata selle väärtuseks „300”, kui väärtus „300” on väiksem kui juba sisestatud väärtus. Teame, et juba sisestatud väärtus '400' väljale SalePrice on suurem kui võrreldav uus väärtus '300'. Seega asendab see seekord '400' numbriga '300'. Väljundsõnum näitab selle päringu edukat täitmist. Muudetud arv = 1 tähendab, et 1 kirjet on muudetud.

test > db.order.updateOne ( { id: 3 } , { $min : { Müügihind: 300 } } )

Pärast tellimuskogu kirjete kuvamist andmebaasist 'test' JSON-vormingus funktsiooni 'find()' kaudu MongoDB kestas leidsime, et 3. kirje värskendamine õnnestus. Välja „SalePrice” väärtus 400 asendatakse väärtusega 300.

test > db.tellimus.leida ( ) .igaühele ( printjson )

Näide 2:

Selle MongoDB illustratsiooni raames hangime konkreetse andmebaasi kirjed, rühmitades need operaatori '$min' alusel vastavalt kirjete minimaalsele väärtusele. Oletame, et teil on samad 5 kirjet MongoDB testandmebaasi 'tellimuste' kogus ja teil peavad olema 'test' andmebaasi konkreetsetel väljadel dubleeritud andmed. Selleks lisame rohkem kirjeid 'test' andmebaasi 'tellimuse' kogusse. Seekord sisestame väljale „Pealkiri” duplikaatväärtused. Seda kasutatakse klauslis “$group”, et moodustada kordumatute väärtuste rühm. Järgmises väljundis kuvatakse 'test' andmebaasi jaoks äsja sisestatud veel 3 kirjet. Nüüd on kogus „tellimus” välja „Pealkiri” jaoks topeltväärtused võrreldes viie vana kirjega. Ülejäänud kasutab sama.

Pärast seda, kui 'test' andmebaasi 'tellimuste' kogus on kokku 8 kirjet, on aeg testida MongoDB operaatorit $min pärast selle rakendamist konkreetsel väljal, mis on rühmitatud teise välja järgi. Lisatud koondkäsk puudutab kõike seda. See algab märksõnaga 'db', millele järgneb konkreetses andmebaasis oleva kollektsiooni nimi ja funktsioon aggregate (). Koondfunktsioon algab MongoDB klausli $group kasutamisega, mida kasutatakse siin eriti andmete kuvamiseks rühmas, mis puudutab 'test' andmebaasi välja 'Pealkiri', kus väli 'Pealkiri' võetakse unikaalse võtmena. .

Samal ajal lähtestatakse hinnaväli eraldi, mis võtab talle rakendatud operaatori “$min” kaudu 8 sama kirje kokku ainult minimaalse väärtuse. Selle päringu täitmise väljundis kuvatakse hinnajaotises 5 kirjet koos väikese uuendusega. Näete, et korduvaid kirjeid ei kuvata. Siin kuvatakse mõned ainulaadsed ja väikseima väärtusega kirjed.

test > db.order.agregate ( [ { $grupp : { _id: ' $Title ' , hind: { $min : ' $ müügihind ' } } } ] )

Järeldus

See juhend on MongoDB illustratsioonide kogum, mis kuvab lihtsa viisi operaatori „$min” kasutamiseks. Sissejuhatuse lõiku kasutatakse selle kasutamise eesmärgi arutamiseks MongoDB-s. Selle artikli esimeses osas käsitletakse, kuidas operaator “$min” töötab ja ei tööta andmebaasi ühe kirje puhul, st kirje värskendamiseks või lisamiseks minimaalse väärtusena. Samuti näitavad viimased näited selle kasutamist kogumiku kirje rühmitamiseks kogu andmebaasis ainulaadseks.