MongoDB $Max-operatør

Mongodb Max Operator



MongoDB kom op med mange operatører til at udføre specialtransaktioner som at opdatere posterne, tilføje en ny post og vise posterne under en bestemt betingelse. En af disse operatører er '$max'-operatøren, som bruges til at tjekke for den største værdi i posten. Bortset fra det kan vi bruge det til at opdatere den mindste værdi med en ny største værdi efter at have sammenlignet dem i 'opdater' funktionsinstruktionen. Den anden brug af '$max'-operatoren er at gruppere og vise posterne for en bestemt samling på en måde, så den kun kan vise den største værdi, mens den ignorerer den mindste værdi, når der er nogle duplikerede poster i databasen. I denne vejledning vil vi bruge simple forespørgselseksempler til at diskutere de tidligere nævnte anvendelser af '$max'-operatoren i MongoDB-kommandolinjeværktøjet i vores Windows-platform.

Eksempel 1:

Startende med illustrationen for at diskutere, og hvordan '$max'-operatoren fungerer i MongoDB-skallen, skal vi have en samling ved navn 'data', der allerede skal oprettes. For at oprette denne samling skal vi tilføje nogle poster direkte til den uden brug af nogen 'opret' instruktion. Indsæt-instruktionen er nok til at oprette en samling og tilføje posterne i den. Vi bruger funktionen 'insertMany' i forespørgslen til at tilføje fire poster, der hver har 4 felter af forskellige typer.

prøve > db.data.insertMany ( [ { 'id' : en , 'Navn' : 'Bravo' , 'Løn' : 65.000 , 'Alder' : 44 } ,
... { 'id' : 2 , 'Navn' : 'Stephen' , 'Løn' : 77.000 , 'Alder' : 55 } ,
... { 'id' : 3 , 'Navn' : 'Maria' , 'Løn' : 42000 , 'Alder' : 27 } ,
... { 'id' : 4 , 'Navn' : 'Hawkin' , 'Løn' : 58.000 , 'Alder' : 33 } ] )







Indsæt-kommandoen er vellykket, og outputmeddelelsen viser, at posterne er tilføjet.



Efter at have indsat posterne i 'data'-samlingen af ​​vores MongoDB, er det tid til at se disse poster på skallen. Således kører vi 'find()'-funktionsinstruktionen på MongoDB Cli efterfulgt af 'forEach()'-funktionen og tager printjson-argumentet til at vise et resultat i JSON-formatet. Resultatet, der vises i skallen, viser i alt 4 dokumenter i samlingen, som er vist i følgende outputbillede:



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





Lad os prøve '$max'-operatoren i opdateringskommandoen til MongoDB for at ændre de allerede indsatte poster. Således bruges updateOne() her til kun at ændre en enkelt registrering af 'data'-indsamling som en specifik post, hvor 'id'-feltet har en værdi på '2'. Operatoren '$max' anvendes på feltet 'Løn' i 'data'-indsamlingen for at kontrollere, om feltet 'Løn' har en værdi, der er større end 55000. Hvis ikke, skal du opdatere posten med 55000. Outputresultatet for denne updateOne() funktionsforespørgsel, som viser en '0' modifikationstælling, da post '2' har mindre end 55000 lønværdi.

prøve > db.data.updateOne ( { id: 2 } , { $max : { Løn: 55.000 } } )



Efter denne opdatering prøver vi den samme 'find()'-funktionsforespørgsel for at vise det ændrede resultat på MongoDB-kommandolinjeskallen. Men vi får det samme output, som vi fik, før vi brugte 'opdaterings'-instruktionen. Der var ingen ændring, fordi 77000-værdien er større end 55000.

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

Lad os prøve den samme updateOne()-forespørgsel igen med en lille ændring. Denne gang prøver vi den større værdi, som er '85000' end værdien '77000', som allerede findes i 'Løn'-feltet for 'data'-indsamling for at gøre en forskel i vores output. Outputtet viser modifikationsantallet '1' denne gang, da '85000'-værdien erstatter den allerede eksisterende værdi af '77000' i feltet efter sammenligningen skete, bare på grund af '$max'-operatoren i denne forespørgsel.

prøve > db.data.updateOne ( { id: 2 } , { $max : { Løn: 85.000 } } )

Efter at have erstattet den mindre værdi af '77000' med en ny værdi på '85000' gennem '$max'-operatoren af ​​MongoDB, bruger vi endelig 'find()'-funktionen i 'db'-instruktionen til at tjekke for denne opdatering, om den er opdateret med succes eller ej. Outputtet viser, at værdien i feltet 'Løn' for en 2. post i denne samling er perfekt opdateret.

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

Eksempel 2:

Lad os springe til et andet eksempel for at gøre brug af '$max' operatoren i MongoDB. Denne gang afviser vi '$max'-operatoren for at gruppere og vise de unikke poster for en samling, hvis der er nogen dubletter for de samme feltværdier. Til dette indsætter vi yderligere 2 poster i 'data'-samlingen i en 'test'-database. Disse poster indeholder de 2 samme værdier i feltet 'Navn', som også er i de allerede indsatte 4 poster, og resten er forskellige. For at indsætte posterne bruger vi den samme 'db'-instruktion, som indeholder 'insertMany'-funktionen i den for at 'data'-indsamlingen bliver opdateret.

prøve > db.data.insertMany ( [ { 'id' : 5 , 'Navn' : 'Bravo' , 'Løn' : 35.000 , 'Alder' : Fire, fem } ,
{ 'id' : 6 , 'Navn' : 'Hawkin' , 'Løn' : 67.000 , 'Alder' : 33 } ] )

Instruktionen er udført med succes.

Nu hvor de 2 nye poster er tilføjet, kan du også vise dem ved hjælp af den samme 'find'-funktion i 'db'-instruktionen efterfulgt af 'forEach'-funktionen. Følgende displayoutput på billedet viser de 2 nye poster i slutningen af ​​denne samling:

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

Efter at have vist de 6 registreringer af 'data'-indsamling, er vi klar til at udføre den aggregerede funktion på den. Derfor bruges funktionen 'samlet' i den følgende listede forespørgsel. Med denne funktion bruger vi operatøren '$group' til at gruppere registreringen af ​​en 'data'-indsamling i henhold til de unikke navne på feltet 'id' og feltet 'Løn'. Operatoren '$max' anvendes på feltet 'Løn' i posterne for at få de maksimale værdier vist. Få den største værdi fra feltet Løn i henhold til duplikatnavnene i feltet 'Navn', som bruges som 'id' for at denne gruppering skal vises. Der vises i alt 4 poster. Den mindste værdi (fra dubletposterne) ignoreres, mens den største værdi vises.

db.data.aggregat ( [ { $gruppe : { _id: ' $navn ' , Løn: { $max : ' $Løn ' } } } ] )

Konklusion

Det første afsnit i denne vejledning hjælper dig med at forstå vigtigheden af ​​operatorer, der bruges i MongoDB, især '$max' operatoren og dens brug i MongoDB shell. Denne vejledning indeholder to kommandobaserede eksempler, der er relateret til '$max'-operatoren for at demonstrere dens formål. Ved at gennemgå MongoDB-illustrationerne, vil du være i stand til at udføre nogle nyttige transaktioner i databasen, hvad enten det handler om at erstatte en allerede eksisterende post med en ny værdi eller vise posterne ved at gruppere dem via '$max'-operatoren.