MongoDB $Min-operatør

Mongodb Min Operator



Hvis du ikke er en ny bruker av databaser eller programmering, må du ha prøvd programmene og spørringene som bruker sammenligningsoperatorene – større enn, mindre enn, lik osv. I MongoDB, der vi bruker “$set”-operatoren for å oppdatere en spesifikk feltpost eller legge til en ny post i databasen, kan vi også oppnå det samme resultatet ved å bruke sammenligningsoperatorene som '$min' og '$max'. I MongoDB kan '$min'-operatoren brukes i mange funksjonsspørringer for å oppdatere et spesifikt felt når en ny verdi er mindre enn den allerede innsatte verdien. Den kan også brukes til å gruppere og vise postene til en samling i en bestemt rekkefølge. Denne guiden hjelper deg med forskjellige måter å fjerne '$min'-operatøren i MongoDB.

Eksempel 1:

Fra den første illustrasjonen demonstrerer vi bruken av '$min'-operatoren i MongoDB for å oppdatere en allerede innsatt post ved å bruke MongoDB-skallverktøyet i Windows-systemet. Derfor må du ha noen poster som allerede er lagt til databasen din. Så vi bruker funksjonsspørringen insertMany() for å legge til totalt 5 poster i 'ordre'-samlingen til en 'test'-database. Hver av de innsatte postene som er vist i følgende illustrasjon inneholder totalt 4 felt – id, tittel, salgspris og avgift. Disse 5-postdataene er satt inn i henhold til vedlagte utdata:

test > db.order.insertMany ( [ { 'id' :01, 'Tittel' : 'Såpe' , 'Salgs pris' : 500 , 'Avgift' : 24 } ,
... { 'id' :02, 'Tittel' : 'sjampo' , 'Salgs pris' : 700 , 'Avgift' : 27 } ,
... { 'id' :03, 'Tittel' : 'Vaskemiddel' , 'Salgs pris' : 400 , 'Avgift' : 22 } ,
... { 'id' :04, 'Tittel' : 'Parfyme' , 'Salgs pris' : 900 , 'Avgift' : 30 } ,
... { 'id' :05, 'Tittel' : 'Tåke' , 'Salgs pris' : 850 , 'Avgift' : 27 } ] )







Det er på tide å se på den innsatte posten i en 'test'-database. For det må du forkaste 'find()'-metoden sammen med 'forEach'-metoden, og ta 'printjson' som et argument i 'db'-instruksjonen. Ved å bruke samlingen som heter 'ordre', har vi en post vist på skjermen.



test > db.order.finn ( ) .for hver ( printjson )



Det er på høy tid å bruke «$min»-operatoren i «updateOne»-funksjonsspørringen for å oppdatere en enkelt post fra «ordre»-samlingen som nettopp er opprettet. 'ID'-feltet brukes som en unik identifikator for å oppdatere en spesifikk post fra en database, mens '$min'-operatoren brukes på et 'SalePrice'-felt for å oppdatere verdien til 600 hvis den er mindre enn den allerede innsatte verdien. Utdatameldingen viser at spørringen er vellykket, men ingen oppdateringer er gjort.





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

Grunnen til at det ikke blir gjort noen oppdatering av 'SalePrice'-feltet i den tredje posten er at den inneholder verdien '400' som er mindre enn '600'. Derfor oppdaterer ikke '$min'-operatøren minimumsverdien på '400' med en større verdi på '600' i henhold til følgende vedlagte find()-spørring:



test > db.order.finn ( ) .for hver ( printjson )

La oss gjøre en liten endring i oppdateringsspørringen for å få en annen utgang denne gangen. Vi bruker den samme 'db'-instruksjonen som bruker 'updateOne'-funksjonen i den for å endre en enkelt post på '3'. Operatoren '$min' brukes på 'SalePrice'-feltet for å sette verdien til '300' hvis verdien av '300' er mindre enn verdien som allerede er satt inn. Vi vet at den allerede innsatte verdien på '400' i SalePrice-feltet er større enn den nye verdien på '300' som skal sammenlignes. Så den erstatter '400' med '300' denne gangen. Utdatameldingen viser vellykket utførelse av denne spørringen. Det modifiserte antallet = 1 betyr at 1 post er endret.

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

Etter å ha vist postene for en 'ordre'-samling fra 'test'-databasen i et JSON-format via 'find()'-funksjonsinstruksjonen i MongoDB-skallet, fant vi ut at den tredje posten ble oppdatert. Verdien på 400 i «SalePrice»-feltet erstattes med verdien på 300.

test > db.order.finn ( ) .for hver ( printjson )

Eksempel 2:

Innenfor denne MongoDB-illustrasjonen henter vi postene til en spesifikk database ved å gruppere dem angående '$min'-operatoren i henhold til minimumsverdien i postene. Anta at du har de samme 5 postene i 'ordre'-samlingen til MongoDBs 'test'-database, og du må ha noen dupliserte data i de spesielle feltene i en 'test'-database. For dette legger vi til flere poster i 'ordre'-samlingen til 'test'-databasen. Denne gangen setter vi inn dupliserte verdier for 'Tittel'-feltet. Den brukes i en '$group'-klausul for å danne en gruppe unike verdier. Følgende utdata viser de nylig innsatte 3 postene til for 'test'-databasen. Nå har 'ordre'-samlingen dupliserte verdier for 'Tittel'-feltet sammenlignet med de 5 gamle postene. Resten bruker det samme.

Etter å ha totalt 8 poster i 'ordre'-samlingen til 'test'-databasen, er det på tide å teste $min-operatøren til MongoDB etter applikasjonen på et spesifikt felt som er gruppert etter et annet felt. Den vedlagte samlede kommandoen handler om dette. Det starter med nøkkelordet 'db' etterfulgt av navnet på en samling i en bestemt database og aggregate()-funksjonen. Den aggregerte funksjonen starter med bruken av $group-klausulen til MongoDB som er spesielt brukt her for å vise dataene i en gruppe angående 'Tittel'-feltet i 'test'-databasen der 'Tittel'-feltet tas som en unik nøkkel .

Samtidig initialiseres prisfeltet separat, som kun tar minimumsverdiposten fra de totalt 8 samme postene via '$min'-operatøren som brukes på den. Utdataene fra denne spørringen viser visningen av 5 poster med en liten oppdatering i prisdelen. Du kan se at ingen gjentatte poster vises. Noen unike og minste verdiposter vises her.

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

Konklusjon

Denne veiledningen er en samling av MongoDB-illustrasjoner for å vise en enkel måte å bruke '$min'-operatoren på. Introduksjonsavsnittet brukes til å diskutere formålet med bruken i MongoDB. Den første delen av denne artikkelen diskuterer hvordan '$min'-operatøren fungerer og ikke fungerer for en enkelt post i en database, det vil si å oppdatere eller sette inn en post som en minimumsverdi. De siste eksemplene viser også bruken til å gruppere samlingsposten som unik i hele databasen.