MongoDB $Min operator

Mongodb Min Operator



Ako niste novi korisnik baza podataka ili programiranja, sigurno ste isprobali programe i upite koji koriste operatore usporedbe – veće od, manje od, jednako itd. U MongoDB-u, gdje koristimo operator “$set” za ažurirati određeni zapis polja ili dodati novi zapis u bazu podataka, također možemo postići isti rezultat korištenjem operatora za usporedbu kao što su “$min” i “$max”. U MongoDB-u, operator “$min” može se koristiti unutar mnogih funkcijskih upita za ažuriranje određenog polja kada je nova vrijednost manja od već umetnute vrijednosti. Također, može se koristiti za grupiranje i prikaz zapisa zbirke u određenom redoslijedu. Ovaj vam vodič pomaže s različitim načinima odbacivanja operatora “$min” u MongoDB-u.

Primjer 1:

Počevši od prve ilustracije, demonstriramo upotrebu operatora “$min” u MongoDB-u za ažuriranje već umetnutog zapisa pomoću alata ljuske MongoDB u sustavu Windows. Stoga morate imati neke zapise koji su već dodani u vašu bazu podataka. Dakle, koristimo upit funkcije insertMany() za dodavanje ukupno 5 zapisa u kolekciju 'red' baze podataka 'test'. Svaki od umetnutih zapisa koji su prikazani na sljedećoj ilustraciji sadrži ukupno 4 polja – ID, naslov, prodajna cijena i porez. Ovi podaci od 5 zapisa uspješno su umetnuti prema priloženom izlazu:

test > db.order.insertMany ( [ { 'iskaznica' :01, 'Titula' : 'Sapun' , 'Prodajna cijena' : 500 , 'Porez' : 24 } ,
... { 'iskaznica' :02, 'Titula' : 'šampon' , 'Prodajna cijena' : 700 , 'Porez' : 27 } ,
... { 'iskaznica' :03, 'Titula' : 'Deterdžent' , 'Prodajna cijena' : 400 , 'Porez' : 22 } ,
... { 'iskaznica' :04, 'Titula' : 'Parfem' , 'Prodajna cijena' : 900 , 'Porez' : 30 } ,
... { 'iskaznica' :05, 'Titula' : 'Zamagliti' , 'Prodajna cijena' : 850 , 'Porez' : 27 } ] )







Vrijeme je da pogledate umetnuti zapis u 'testnoj' bazi podataka. Za to trebate odbaciti metodu “find()” zajedno s metodom “forEach”, uzimajući “printjson” kao argument u uputama “db”. Koristeći kolekciju pod nazivom 'red', imamo zapis prikazan na ekranu.



test > db.narediti.naći ( ) .za svakoga ( printjson )



Krajnje je vrijeme da upotrijebite operator '$min' u upitu funkcije 'updateOne' za ažuriranje jednog zapisa iz kolekcije 'order' koja je upravo stvorena. Polje 'id' koristi se kao jedinstveni identifikator za ažuriranje određenog zapisa iz baze podataka, dok se operator '$min' primjenjuje na polje 'SalePrice' za ažuriranje njegove vrijednosti na 600 ako je manja od već umetnute vrijednosti. Izlazna poruka pokazuje da je upit uspješan, ali nema ažuriranja.





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

Razlog zašto se polje 'SalePrice' trećeg zapisa ne ažurira jer ono sadrži vrijednost '400' koja je manja od '600'. Stoga operator “$min” ne ažurira minimalnu vrijednost od “400” s većom vrijednošću od “600” prema sljedećem priloženom upitu find():



test > db.narediti.naći ( ) .za svakoga ( printjson )

Napravimo malu promjenu u upitu ažuriranja kako bismo ovaj put dobili drugačiji rezultat. Koristimo istu instrukciju 'db' koja koristi funkciju 'updateOne' u sebi za izmjenu jednog zapisa od '3'. Operator “$min” primjenjuje se na polje “SalePrice” kako bi se njegova vrijednost postavila na “300” ako je vrijednost “300” manja od već umetnute vrijednosti. Znamo da je već umetnuta vrijednost '400' polja SalePrice veća od nove vrijednosti '300' koju treba usporediti. Dakle, ovaj put zamjenjuje '400' sa '300'. Izlazna poruka pokazuje uspješno izvršenje ovog upita. Izmijenjeni broj = 1 znači da je 1 zapis izmijenjen.

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

Nakon prikaza zapisa zbirke 'narudžbi' iz baze podataka 'test' u JSON formatu putem instrukcije funkcije 'find()' u ljusci MongoDB, otkrili smo da je treći zapis uspješno ažuriran. Vrijednost 400 polja 'SalePrice' zamjenjuje se vrijednošću 300.

test > db.narediti.naći ( ) .za svakoga ( printjson )

Primjer 2:

Unutar ove MongoDB ilustracije dohvaćamo zapise određene baze podataka grupirajući ih u vezi s operatorom “$min” prema minimalnoj vrijednosti u zapisima. Pretpostavimo da imate istih 5 zapisa u kolekciji 'poretka' MongoDB-ove 'testne' baze podataka i trebate imati neke duplicirane podatke u određenim poljima 'testne' baze podataka. U tu svrhu dodajemo više zapisa u kolekciju 'red' baze podataka 'test'. Ovaj put umećemo duplicirane vrijednosti za polje 'Naslov'. Koristi se u klauzuli '$group' za formiranje grupe jedinstvenih vrijednosti. Sljedeći izlaz prikazuje nova umetnuta još 3 zapisa za 'testnu' bazu podataka. Sada kolekcija 'red' ima duplicirane vrijednosti za polje 'Naslov' u usporedbi s 5 starih zapisa. Ostatak koristi isto.

Nakon što imamo ukupno 8 zapisa u kolekciji 'poretka' baze podataka 'test', vrijeme je da testiramo operator $min MongoDB-a nakon njegove primjene na određeno polje koje je grupirano drugim poljem. Priložena agregatna naredba govori o tome. Započinje ključnom riječi 'db' nakon koje slijedi naziv zbirke u određenoj bazi podataka i funkcija aggregate(). Skupna funkcija počinje upotrebom klauzule $group MongoDB-a koja se ovdje posebno koristi za prikaz podataka u grupi koji se tiču ​​polja 'Title' baze podataka 'test' gdje se polje 'Title' uzima kao jedinstveni ključ .

U isto vrijeme, polje cijene inicijalizira se zasebno koje uzima samo zapis minimalne vrijednosti od ukupno 8 istih zapisa putem operatora “$min” koji se na njega primjenjuje. Izlaz ovog izvršenja upita prikazuje prikaz 5 zapisa s malim ažuriranjem u odjeljku s cijenama. Možete vidjeti da se ne prikazuju zapisi koji se ponavljaju. Ovdje su prikazani neki zapisi jedinstvene i najmanje vrijednosti.

test > db.red.agregat ( [ { $grupa : { _iskaznica: ' $Title ' , cijena: { $min : ' $SalePrice ' } } } ] )

Zaključak

Ovaj vodič je zbirka MongoDB ilustracija za prikaz jednostavnog mogućeg korištenja operatora “$min”. Uvodni odlomak koristi se za raspravu o svrsi njegove upotrebe u MongoDB-u. Prvi dio ovog članka govori o tome kako operator “$min” radi i kako ne radi za jedan zapis u bazi podataka, tj. za ažuriranje ili umetanje zapisa kao minimalne vrijednosti. Također, posljednji primjeri pokazuju njegovu upotrebu za grupiranje zapisa zbirke kao jedinstvenih u cijeloj bazi podataka.