MongoDB $ maks operatør

MongoDB $ maks operatør
MongoDB kom med mange operatører for å utføre spesielle transaksjoner som å oppdatere postene, legge til en ny post og vise postene under en viss tilstand. En av disse operatørene er "$ max" -operatøren som brukes til å sjekke for den største verdien i posten. Bortsett fra det, kan vi bruke den til å oppdatere den minste verdien med en ny største verdi etter å ha sammenlignet dem i "oppdatering" -funksjonsinstruksjonen. Den andre bruken av "$ max" -operatøren er å gruppere og vise postene til en bestemt samling på en måte som den bare kan vise den største verdien mens du ignorerer den minste verdien når det er noen duplikatposter i databasen. I denne guiden skal vi bruke enkle spørringseksempler for å diskutere den tidligere nevnte bruken av "$ max" -operatøren i MongoDB-kommandolinjeverktøyet i Windows-plattformen vår.

Eksempel 1:

Fra og med illustrasjonen for å diskutere og hvordan "$ max" -operatøren fungerer i MongoDB -skallet, må vi ha en samling som heter "Data" som allerede må opprettes. For å lage denne samlingen, må vi legge til noen poster i den direkte uten bruk av noen "opprette" instruksjon. Innleggsinstruksjonen er nok til å lage en samling og legge til postene i den. Vi bruker "Insertmany" -funksjonen i spørringen for å legge til fire poster, som hver har 4 felt av forskjellige typer.

Test> DB.data.InsertMany (["Id": 1, "Navn": "Bravo", "Lønn": 65000, "Alder": 44,
... "id": 2, "Navn": "Stephen", "Lønn": 77000, "Alder": 55,
... "id": 3, "Navn": "Maria", "Lønn": 42000, "Alder": 27,
… "Id": 4, "Navn": "Hawkin", "Lønn": 58000, "Alder": 33])

Innsatskommandoen er vellykket, og utgangsmeldingen viser at postene er lagt til.

Etter å ha satt inn postene i "Data" -samlingen til vår MongoDB, er det på tide å se disse postene på skallet. Dermed kjører vi "Find ()" -funksjonsinstruksjonen på MongoDB CLI etterfulgt av "foreach ()" -funksjonen, og tar Printjson -argumentet for å vise et resultat i JSON -formatet. Resultatet som vises i skallet viser totalt 4 dokumenter i samlingen som er vist i følgende utgangsbilde:

Test> DB.data.finne().Foreach (Printjson)

La oss prøve ut "$ max" -operatøren i oppdateringskommandoen til MongoDB for å endre de allerede innsatte postene. Dermed brukes UpdateOne () her for bare å endre en enkelt registrering av "data" -samling som en spesifikk post der "ID" -feltet har en verdi på "2". Operatøren "$ max" brukes på "lønn" -feltet for "data" -samling for å sjekke om "lønn" -feltet har en verdi som er større enn 55000. Hvis ikke, oppdater rekorden med 55000. Utgangsresultatet for denne UpdateOne () -funksjonsspørringen som viser et "0" modifiseringstall som post "2" har mindre enn 55000 lønnsverdi.

Test> DB.data.UpdateOne (id: 2, $ max: lønn: 55000)

Etter denne oppdateringen prøver vi den samme "find ()" -funksjonsspørsmålet for å vise det endrede resultatet på MongoDB-kommandolinjeskallet. Men vi får den samme utgangen som vi fikk før vi bruker "oppdatering" -instruksjonen. Det var ingen endring fordi 77000 -verdien er større enn 55000.

Test> DB.data.finne().Foreach (Printjson)

La oss prøve ut den samme oppdateringenOne () spørringen igjen med en liten modifisering. Denne gangen prøver vi den større verdien som er "85000" enn "77000" -verdien som allerede er bosatt i "lønn" -feltet for "data" -samling for å gjøre en forskjell i utdataene våre. Utgangen viser modifikasjonsantall.

Test> DB.data.UpdateOne (id: 2, $ max: lønn: 85000)

Etter å ha erstattet den mindre verdien av “77000” med en ny verdi på “85000” gjennom “$ max” -operatøren til MongoDB, bruker vi endelig “Find ()” -funksjonen i “DB” -instruksjonen for å sjekke for denne oppdateringen, om det er vellykket oppdatert eller ikke. Utgangen viser at verdien i "lønn" -feltet til en 2. post i denne samlingen er perfekt oppdatert.

Test> DB.data.finne().Foreach (Printjson)

Eksempel 2:

La oss hoppe til et annet eksempel for å bruke "$ max" -operatøren i MongoDB. Denne gangen kaster vi av "$ max" -operatøren for å gruppere og vise de unike postene til en samling hvis det er noen duplikater for de samme feltverdiene. For dette setter vi inn to flere poster i "Data" -samlingen til en "test" -database. Disse postene inneholder de to samme verdiene i "Navn" -feltet som også er i de allerede innsatte 4 postene, og resten er forskjellige. For å sette inn postene bruker vi den samme “DB” -instruksjonen som inneholder “InsertMany” -funksjonen i den for “Data” -samlingen for å bli oppdatert.

Test> DB.data.InsertMany (["Id": 5, "Navn": "Bravo", "Lønn": 35000, "Alder": 45,
... "id": 6, "Navn": "Hawkin", "Lønn": 67000, "Alder": 33])

Instruksjonen utføres vellykket.

Nå som de to nye postene er lagt til, kan du også vise dem ved å bruke den samme "finn" -funksjonen i "DB" -instruksjonen etterfulgt av "foreach" -funksjonen. Følgende visningsutgang i bildet viser de to nye postene på slutten av denne samlingen:

Test> DB.data.finne().Foreach (Printjson)

Etter å ha vist de 6 postene til "Data" -samling, er vi klare til å utføre den samlede funksjonen på den. Derfor brukes "aggregat" -funksjonen i følgende listede spørring. Med denne funksjonen bruker vi "$ Group" -operatøren for å gruppere posten til en "data" -samling i henhold til de unike navnene på feltet "ID" og "lønn" -feltet. "$ Maks" -operatøren brukes på "lønn" -feltet til postene for å få maksimale verdier som skal vises. Få størst verdi fra lønnsfeltet "i henhold til duplikatnavnene i" Navn "-feltet som brukes som" ID "for at denne gruppen skal vises. Totalt 4 poster vises. Den minste verdien (fra duplikatpostene) blir ignorert mens den største verdien vises.

db.data.Aggregate ([$ gruppe: _id: "$ name", lønn: $ max: "$ lønn"])

Konklusjon

Første ledd i denne guiden hjelper deg å forstå viktigheten av operatører som brukes i MongoDB, spesielt "$ max" -operatøren og dens bruk i MongoDB -skallet. Denne guiden inneholder to kommandobaserte eksempler som er relatert til "$ max" -operatøren for å demonstrere dens formål. Når du går gjennom MongoDB -illustrasjonene, vil du kunne utføre noen nyttige transaksjoner i databasen, enten det handler om å erstatte en allerede eksisterende post med en ny verdi eller vise postene ved å gruppere dem via "$ max" -operatøren.