MongoDB $ min operatør

MongoDB $ min operatør
Hvis du ikke er en ny bruker av databaser eller programmering, må du ha prøvd programmene og spørsmålene som bruker sammenligningsoperatørene - større enn, mindre enn, lik osv. I MongoDB, der vi bruker "$ set" -operatøren for å oppdatere en spesifikk feltoppføring eller legge til en ny post til databasen, kan vi også oppnå det samme resultatet ved å bruke sammenligningsoperatørene som "$ min" og "$ max". I MongoDB kan "$ min" -operatøren brukes i mange funksjonsspørsmål for å oppdatere et spesifikt felt når en ny verdi er mindre enn den allerede innsatte verdien. Det kan også brukes til å gruppere og vise postene til en samling i en bestemt rekkefølge. Denne guiden hjelper deg med forskjellige måter å kaste av "$ min" -operatøren i MongoDB.

Eksempel 1:

Fra og med den første illustrasjonen demonstrerer vi bruken av "$ min" -operatøren i MongoDB for å oppdatere en allerede satt inn post ved hjelp av MongoDB Shell -verktøyet i Windows -systemet. Derfor må du ha noen poster som allerede er lagt til i databasen din. Så vi bruker InsertMany () -funksjonsspørsmålet for å legge til totalt 5 poster i "Order" -samlingen til en "test" -database. Hver av de innsatte postene som vises i følgende illustrasjon inneholder totalt 4 felt - id, tittel, SalePrice og skatt. Disse 5-rekorddataene settes inn vellykket i henhold til vedlagte utgang:

Test> DB.rekkefølge.InsertMany (["Id": 01, "Tittel": "Soap", "SalePrice": 500, "Tax": 24,
... "id": 02, "tittel": "sjampo", "SalePrice": 700, "skatt": 27,
... "id": 03, "tittel": "Detergent", "SalePrice": 400, "skatt": 22,
… "Id": 04, "Tittel": "Perfume", "SalePrice": 900, "Skatt": 30,
… "Id": 05, "Tittel": "Mist", "SalePrice": 850, "Skatt": 27])

Det er på tide å se på den innsatte posten i en "test" -database. For det må du kaste av "Find ()" -metoden sammen med "foreach" -metoden, ta "Printjson" som et argument i "DB" -instruksjonen. Ved hjelp av samlingen som heter “Order”, har vi en post som vises på skjermen.

Test> DB.rekkefølge.finne().Foreach (Printjson)

Det er på høy tid å bruke "$ min" -operatøren i "UpdateOne" -funksjonsspørsmålet for å oppdatere en enkelt post fra "Order" -samlingen som nettopp er opprettet. "ID" -feltet brukes som en unik identifikator for å oppdatere en spesifikk post fra en database mens "$ min" -operatøren brukes på et "SalePrice" -felt for å oppdatere verdien til 600 hvis den er mindre enn den allerede innsatte verdien. Utgangsmeldingen viser at spørringen er vellykket, men ingen oppdateringer blir gjort.

Test> DB.rekkefølge.UpdateOne (id: 3, $ min: SalePrice: 600)

Årsaken til at det ikke gjøres noen oppdatering til "SalePrice" -feltet i den tredje posten, er at den inneholder verdien av "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ørsmål:

Test> DB.rekkefølge.finne().Foreach (Printjson)

La oss gjøre en liten endring i oppdateringsspørsmålet 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”. "$ Min" -operatøren brukes på "SalePrice" -feltet for å sette verdien til "300" hvis verdien av "300" er mindre enn den allerede innsatte verdien. Vi vet at den allerede innsatte verdien av "400" i SalePrice -feltet er større enn den nye verdien av "300" som skal sammenlignes. Så det erstatter “400” med “300” denne gangen. Utgangsmeldingen viser vellykket utførelse av denne spørringen. Den modifiserte tellingen = 1 betyr at 1 post er endret.

Test> DB.rekkefølge.UpdateOne (id: 3, $ min: SalePrice: 300)

Etter å ha vist postene til en "Order" -samling fra "Test" -databasen i et JSON -format via "Find ()" -funksjonsinstruksjonen i MongoDB Shell, fant vi at den tredje posten er oppdatert vellykket. Verdien på 400 av "SalePrice" -feltet erstattes av verdien av 300.

Test> DB.rekkefølge.finne().Foreach (Printjson)

Eksempel 2:

Innenfor denne MongoDB -illustrasjonen henter vi postene til en spesifikk database ved å gruppere dem angående “$ min” -operatøren i henhold til minimumsverdien i postene. Anta at du har de samme 5 postene i "Order" -samlingen av MongoDBs "Test" -database, og du må ha noen duplikatdata i de bestemte feltene i en "test" -database. For dette legger vi til flere poster i "Order" -samlingen av "Test" -databasen. Denne gangen setter vi inn duplikatverdiene for "tittel" -feltet. Den brukes i en "$ gruppe" -klausul for å danne en gruppe unike verdier. Følgende utdata viser de nyinnsatte 3 flere poster for "Test" -databasen. Nå har "Order" -samlingen dupliserte verdier for "tittel" -feltet i forhold til de 5 gamle postene. Resten bruker det samme.

Etter å ha hatt totalt 8 poster i "Order" -samlingen av "Test" -databasen, er det på tide å teste $ min -operatøren av MongoDB etter applikasjonen på et spesifikt felt som er gruppert etter et annet felt. Den vedlagte samlede kommandoen handler om dette. Det starter med "DB" nøkkelordet etterfulgt av navnet på en samling i en bestemt database og Aggregate () -funksjonen. Den samlede funksjonen starter med bruken av $ gruppeklausulen til MongoDB som spesielt brukes her for å vise dataene i en gruppe som angår "tittel" -feltet i "test" -databasen der "tittel" -feltet blir tatt som en unik nøkkel.

Samtidig initialiseres prisfeltet separat, som bare tar minimumsverdi -rekorden fra totalt 8 samme poster via "$ min" -operatøren som brukes på den. Utgangen fra denne utførelsen av spørringen viser visningen av 5 poster med en liten oppdatering i prisdelen. Du kan se at ingen repeterende poster vises. Noen unike og minste verdiposter vises her.

Test> DB.rekkefølge.Aggregate ([$ gruppe: _id: "$ tittel", pris: $ min: "$ SalePrice"]))

Konklusjon

Denne guiden er en samling av MongoDB -illustrasjoner for å vise en enkel måte å bruke "$ min" -operatøren. Introduksjonsparagrafen 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 eneste post i en database, i.e. For å oppdatere eller sette inn en post som en minimumsverdi. De siste eksemplene demonstrerer også bruken av å gruppere innsamlingsrekorden som unik gjennom hele databasen.