MongoDB $Min operatør

Mongodb Min Operator



Hvis du ikke er ny bruger af databaser eller programmering, skal du have prøvet de programmer og forespørgsler, der bruger sammenligningsoperatorerne - større end, mindre end, lig med osv. I MongoDB, hvor vi bruger '$set'-operatoren til at opdatere en specifik feltpost eller tilføje en ny post til databasen, kan vi også opnå det samme resultat ved at bruge sammenligningsoperatorerne som '$min' og '$max'. I MongoDB kan '$min'-operatoren bruges i mange funktionsforespørgsler til at opdatere et specifikt felt, når en ny værdi er mindre end den allerede indsatte værdi. Det kan også bruges til at gruppere og vise registreringerne af en samling i en bestemt rækkefølge. Denne guide hjælper dig med forskellige måder at fjerne '$min'-operatoren i MongoDB.

Eksempel 1:

Startende med den første illustration demonstrerer vi brugen af ​​'$min'-operatoren i MongoDB til at opdatere en allerede indsat post ved hjælp af MongoDB-skalværktøjet i Windows-systemet. Derfor skal du have nogle poster, som allerede er tilføjet til din database. Så vi bruger funktionsforespørgslen insertMany() til at tilføje i alt 5 poster i 'ordre'-samlingen af ​​en 'test'-database. Hver af de indsatte poster, som er vist i den følgende illustration, indeholder i alt 4 felter – id, titel, salgspris og skat. Disse 5-records data er indsat med succes i henhold til det vedhæftede output:

prøve > db.order.insertMany ( [ { 'id' :01, 'Titel' : 'Sæbe' , 'Udsalgspris' : 500 , 'Skat' : 24 } ,
... { 'id' :02, 'Titel' : 'shampoo' , 'Udsalgspris' : 700 , 'Skat' : 27 } ,
... { 'id' :03, 'Titel' : 'Vaskepulver' , 'Udsalgspris' : 400 , 'Skat' : 22 } ,
... { 'id' :04, 'Titel' : 'Parfume' , 'Udsalgspris' : 900 , 'Skat' : 30 } ,
... { 'id' :05, 'Titel' : 'Tåge' , 'Udsalgspris' : 850 , 'Skat' : 27 } ] )







Det er tid til at se på den indsatte post i en 'test'-database. Til det skal du afvise 'find()'-metoden sammen med 'forEach'-metoden, idet du tager 'printjson' som et argument i 'db'-instruktionen. Ved at bruge samlingen med navnet 'ordre', har vi en registrering vist på skærmen.



prøve > db.ordre.find ( ) .for hver ( printjson )



Det er på høje tid at bruge '$min'-operatoren i 'updateOne'-funktionsforespørgslen til at opdatere en enkelt post fra den 'ordre'-samling, der lige er blevet oprettet. 'id'-feltet bruges som en unik identifikator til at opdatere en specifik post fra en database, mens '$min'-operatoren anvendes på et 'SalePrice'-felt for at opdatere dens værdi til 600, hvis den er mindre end den allerede indsatte værdi. Outputmeddelelsen viser, at forespørgslen er vellykket, men at der ikke foretages opdateringer.





prøve > db.order.updateOne ( { id: 3 } , { $min : { Udsalgspris: 600 } } )

Grunden til, at der ikke foretages nogen opdatering af 'SalePrice'-feltet i den 3. post, er, at det indeholder værdien '400', som er mindre end '600'. Derfor opdaterer '$min'-operatøren ikke minimumsværdien på '400' med en større værdi på '600' i henhold til følgende vedhæftede find()-forespørgsel:



prøve > db.ordre.find ( ) .for hver ( printjson )

Lad os lave en lille ændring af opdateringsforespørgslen for at få et andet output denne gang. Vi bruger den samme 'db'-instruktion, der bruger 'updateOne'-funktionen i den til at ændre en enkelt post på '3'. Operatoren '$min' anvendes på feltet 'SalePrice' for at indstille dens værdi til '300', hvis værdien af ​​'300' er mindre end den allerede indsatte værdi. Vi ved, at den allerede indsatte værdi på '400' i feltet SalePrice er større end den nye værdi på '300', der skal sammenlignes. Så den erstatter '400' med '300' denne gang. Outputmeddelelsen viser den vellykkede udførelse af denne forespørgsel. Det ændrede antal = 1 betyder, at 1 post er ændret.

prøve > db.order.updateOne ( { id: 3 } , { $min : { Udsalgspris: 300 } } )

Efter at have vist posterne for en 'ordre'-samling fra 'test'-databasen i et JSON-format via 'find()'-funktionsinstruktionen i MongoDB-shell, fandt vi ud af, at den 3. post blev opdateret med succes. Værdien af ​​400 i feltet 'SalePrice' erstattes af værdien på 300.

prøve > db.ordre.find ( ) .for hver ( printjson )

Eksempel 2:

I denne MongoDB-illustration henter vi posterne fra en specifik database ved at gruppere dem vedrørende '$min'-operatoren i henhold til minimumsværdien i posterne. Antag, at du har de samme 5 poster i 'ordre'-samlingen af ​​MongoDB's 'test'-database, og du skal have nogle duplikerede data i de særlige felter i en 'test'-database. Til dette tilføjer vi flere poster i 'ordre'-samlingen i 'test'-databasen. Denne gang indsætter vi de duplikerede værdier for feltet 'Titel'. Det bruges i en '$group'-klausul til at danne en gruppe af unikke værdier. Følgende output viser de nyligt indsatte 3 yderligere poster for 'test'-databasen. Nu har 'ordre'-samlingen duplikerede værdier for feltet 'Titel' sammenlignet med de 5 gamle poster. Resten bruger det samme.

Efter at have haft i alt 8 poster i 'ordre'-samlingen af ​​'test'-databasen, er det tid til at teste $min-operatøren af ​​MongoDB efter dens anvendelse på et specifikt felt, der er grupperet efter et andet felt. Den vedhæftede samlede kommando handler om dette. Det starter med nøgleordet 'db' efterfulgt af navnet på en samling i en bestemt database og aggregate()-funktionen. Den aggregerede funktion starter med brugen af ​​$group-sætningen i MongoDB, der især bruges her til at vise data i en gruppe vedrørende 'Titel'-feltet i 'test'-databasen, hvor 'Titel'-feltet tages som en unik nøgle .

Samtidig initialiseres prisfeltet separat, som kun tager minimumsværdiposten fra de i alt 8 samme poster via '$min'-operatøren, der er anvendt på den. Outputtet af denne forespørgselsudførelse viser visningen af ​​5 poster med en lille opdatering i prisafsnittet. Du kan se, at der ikke vises nogen gentagne registreringer. Nogle unikke og mindste værdiposter vises her.

prøve > db.ordre.aggregat ( [ { $gruppe : { _id: ' $Title ' , pris: { $min : ' $Udsalgspris ' } } } ] )

Konklusion

Denne vejledning er en samling af MongoDB-illustrationer for at vise en enkel måde at bruge '$min'-operatoren på. Introduktionsafsnittet bruges til at diskutere formålet med dets brug i MongoDB. Den første del af denne artikel diskuterer, hvordan '$min'-operatoren fungerer og ikke fungerer for en enkelt post i en database, dvs. at opdatere eller indsætte en post som en minimumsværdi. De sidste eksempler viser også dens brug til at gruppere samlingsposten som unik i hele databasen.