MongoDB $Min operátor

Mongodb Min Operator



Ha nem új felhasználó az adatbázisokban vagy a programozásban, akkor bizonyára kipróbálta azokat a programokat és lekérdezéseket, amelyek összehasonlító operátorokat használnak – nagyobb, kisebb, egyenlő stb. A MongoDB-ben, ahol a „$set” operátort használjuk adott mezőrekord frissítése vagy új rekord hozzáadása az adatbázishoz, ugyanazt az eredményt érhetjük el a „$min” és „$max” összehasonlító operátorok használatával is. A MongoDB-ben a „$min” operátor számos függvénylekérdezésben használható egy adott mező frissítésére, ha egy új érték kisebb, mint a már beillesztett érték. Ezenkívül egy gyűjtemény rekordjainak meghatározott sorrendben történő csoportosítására és megjelenítésére is használható. Ez az útmutató segít a „$min” operátor kivetésének különböző módjaiban a MongoDB-ben.

1. példa:

Az első illusztrációtól kezdve bemutatjuk a „$min” operátor használatát a MongoDB-ben egy már beillesztett rekord frissítésére a MongoDB shell eszközzel a Windows rendszerben. Ezért rendelkeznie kell néhány olyan rekorddal, amely már hozzáadva van az adatbázishoz. Tehát az insertMany() függvénylekérdezést használjuk, hogy összesen 5 rekordot adjunk hozzá egy „teszt” adatbázis „order” gyűjteményéhez. A következő ábrán látható összes beszúrt rekord összesen 4 mezőt tartalmaz – azonosító, cím, eladási ár és adó. Ez az 5 rekordból álló adat sikeresen beillesztésre került a mellékelt kimenet szerint:

teszt > db.order.insertMany ( [ { 'azonosító' :01, 'Cím' : 'Szappan' , 'Eladási ár' : 500 , 'Adó' : 24 } ,
... { 'azonosító' :02, 'Cím' : 'sampon' , 'Eladási ár' : 700 , 'Adó' : 27 } ,
... { 'azonosító' :03, 'Cím' : 'Mosószer' , 'Eladási ár' : 400 , 'Adó' : 22 } ,
... { 'azonosító' :04, 'Cím' : 'Parfüm' , 'Eladási ár' : 900 , 'Adó' : 30 } ,
... { 'azonosító' :05, 'Cím' : 'Köd' , 'Eladási ár' : 850 , 'Adó' : 27 } ] )







Ideje megnézni a beszúrt rekordot egy „teszt” adatbázisban. Ehhez le kell vetnie a „find()” metódust a „forEach” metódussal együtt, a „printjson”-t argumentumként véve a „db” utasításban. Az „order” nevű gyűjtemény használatával egy rekordot jelenítünk meg a képernyőn.



teszt > db.order.find ( ) .az egyes ( printjson )



Legfőbb ideje, hogy a „$min” operátort használjuk az „updateOne” függvény lekérdezésében, hogy frissítsünk egy rekordot a most létrehozott „order” gyűjteményből. Az „id” mező egyedi azonosítóként használatos egy adott rekord frissítéséhez egy adatbázisból, míg a „$min” operátor egy „SalePrice” mezőre vonatkozik, hogy az értéke 600-ra frissüljön, ha az kisebb, mint a már beillesztett érték. A kimeneti üzenet azt mutatja, hogy a lekérdezés sikeres volt, de nem történt frissítés.





teszt > db.order.updateOne ( { azonosító: 3 } , { $min : { Eladási ár: 600 } } )

A 3. rekord „SalePrice” mezőjének frissítése azért nem történik meg, mert az a „400” értéket tartalmazza, amely kisebb, mint „600”. Ezért a „$min” operátor nem frissíti a „400” minimális értéket nagyobb „600” értékkel a következő csatolt find() lekérdezés szerint:



teszt > db.order.find ( ) .az egyes ( printjson )

Változtassunk egy kicsit a frissítési lekérdezésen, hogy ezúttal más kimenetet kapjunk. Ugyanazt a „db” utasítást használjuk, amely az „updateOne” függvényt használja egyetlen „3” rekord módosítására. A „$min” operátort alkalmazza a „SalePrice” mezőben, hogy az értéke „300” legyen, ha a „300” értéke kisebb, mint a már beillesztett érték. Tudjuk, hogy a SalePrice mező már beszúrt „400” értéke nagyobb, mint az összehasonlítandó új „300” érték. Tehát ezúttal a „400”-at „300”-ra cseréli. A kimeneti üzenet a lekérdezés sikeres végrehajtását mutatja. A módosított szám = 1 azt jelenti, hogy 1 rekord módosult.

teszt > db.order.updateOne ( { azonosító: 3 } , { $min : { Eladási ár: 300 } } )

Miután a „teszt” adatbázisból egy „order” gyűjtemény rekordjait megjelenítettük JSON formátumban a „find()” függvényutasítással a MongoDB shellben, azt találtuk, hogy a 3. rekord frissítése sikeresen megtörtént. Az „Eladási ár” mező 400-as értékét a 300-as érték váltja fel.

teszt > db.order.find ( ) .az egyes ( printjson )

2. példa:

Ezen a MongoDB-s illusztráción belül egy adott adatbázis rekordjait kérjük le úgy, hogy azokat a „$min” operátor szerint csoportosítjuk a rekordok minimális értékének megfelelően. Tételezzük fel, hogy ugyanaz az 5 rekord van a MongoDB „teszt” adatbázisának „rend” gyűjteményében, és szükségünk van néhány duplikált adatra a „teszt” adatbázis adott mezőiben. Ehhez a „teszt” adatbázis „rendelés” gyűjteményébe további rekordokat adunk. Ezúttal a „Title” mezőbe beillesztjük az ismétlődő értékeket. Egy „$group” záradékban használják egyedi értékek csoportjának kialakítására. A következő kimenet megjeleníti az újonnan beillesztett további 3 rekordot a „teszt” adatbázishoz. Most a „rendelés” gyűjtemény duplikált értékei vannak a „Cím” mezőben az 5 régi rekordhoz képest. A többi ugyanazt használja.

Miután összesen 8 rekord van a „teszt” adatbázis „rend” gyűjteményében, itt az ideje, hogy teszteljük a MongoDB $min operátorát egy adott mezőn, amelyet egy másik mező csoportosít. A mellékelt összesítő parancs erről szól. A „db” kulcsszóval kezdődik, amelyet egy adott adatbázisban lévő gyűjtemény neve és az aggregate() függvény követ. Az összesítő függvény a MongoDB $group záradékának használatával kezdődik, amelyet itt különösen arra használnak, hogy a 'teszt' adatbázis 'Title' mezőjére vonatkozó adatokat egy csoportban jelenítsék meg, ahol a 'Title' mező egyedi kulcsnak számít. .

Ugyanakkor az ármező külön inicializálásra kerül, amely csak a minimális értékrekordot veszi át az összesen 8 azonos rekordból a rá alkalmazott „$min” operátoron keresztül. Ennek a lekérdezésnek a kimenete 5 rekord megjelenítését mutatja kis frissítéssel az ár részben. Láthatja, hogy nem jelennek meg ismétlődő rekordok. Néhány egyedi és legkisebb értékű rekord jelenik meg itt.

teszt > db.order.aggregate ( [ { $csoport : { _id: ' $Title ' , ár: { $min : ' $SalePrice ' } } } ] )

Következtetés

Ez az útmutató a MongoDB illusztrációk gyűjteménye, amely bemutatja a „$min” operátor egyszerű használatát. A bevezető bekezdés a MongoDB-ben való használat céljának megvitatására szolgál. A cikk első része azt tárgyalja, hogy a „$min” operátor hogyan működik, és nem működik egyetlen rekordnál az adatbázisban, azaz egy rekord frissítését vagy beszúrását minimális értékként. Az utolsó példák azt is bemutatják, hogy a gyűjteményrekord egyediként csoportosítható az adatbázisban.