MongoDB $ SINC -operatør

MongoDB $ SINC -operatør

I programmering har vi en tendens til å bruke begrepene, inkrement og dekrementoperatører for å legge til eller trekke fra en viss verdi for en variabel eller en løkke. Akkurat som et annet programmeringsspråk, kom MongoDB med det inkludert "$ Inc" -operatøren for å legge til en viss verdi til den allerede eksisterende verdien på et felt. "$ Inc" -operatøren øker ikke bare verdien, men kan også redusere verdien. Verdien som skal legges til et bestemt felt kan være positiv eller negativ i henhold til situasjonen - positiv verdi å legge til og negativ til å trekke fra. Denne artikkelen hjelper deg med å bruke "$ inc" -operatøren i MongoDB -skallkommandoene.

Generere en samling i mongodb

Det første trinnet mot bruk av "$ inc" -operatøren i MongoDB er å ha noen data i databasen der "$ inc" -operatøren kan brukes. Derfor bør vi ha en databasesamling i vårt MongoDB -system for å begynne å bruke den. For dette genererer vi et tomt samlingsnavn, "Test", etter å ha brukt "CreateCollection" -funksjonen i MongoDB -konsollen.

Test> DB.CreateCollection ("Test")

Anerkjennelsen av "OK: 1" viser at den tomme samlingen "-testen" er generert. For å sjekke ut dette, prøv ut "Find ()" -funksjonsspørringen sammen med navnet på en samling som i følgende illustrasjon. Akkurat nå viser den at denne samlingen ikke har noen poster.

Test> DB.Test.finne()

Legg til poster i samlingen

Det andre trinnet mot bruk av "$ inc" -operatøren i MongoDB er å legge postene til en nylig generert samling, "Test". For dette kaster vi av AssertMany () -funksjonsspørsmålet som er gitt med navnet på en samling, “Test”. Totalt 3 poster legges til denne samlingen. Hver av postene inneholder 3 enkeltfelt - ID -tittel, alder og 1 dokumentformatfelt. Feltene i et felt som "score" og "posisjon" ligger i "data" -feltet.

Test> DB.Test.InsertMany ([id: 1, tittel: "Eden", alder: 22, data: score: 450, posisjon: 2,
... id: 2, tittel: "Bella", alder: 21, data: score: 498, posisjon: 1,
... id: 3, tittel: "lia", alder: 22, data: score: 442, posisjon: 3])

Den tidligere tilknyttede bildeutgangen viser at innsatsen foregår med hell ved vår slutt. Nå er det på tide å vise de ekstra postene. For å vise den, hjelper MongoDBs "Find" -funksjonsspørsmål som er gitt ved navnet på samlingen, "Test", som vi allerede brukte den i forrige eksempel. De tre postene av "Test" -samlingen vises som vist på følgende:

Test> DB.Test.finne()

Eksempel 1: Endre et enkelt felt i en enkelt post

Fra og med dette eksemplet bruker vi "$ inc" -operatøren for å oppsummere en verdi i et enkelt felt av hvilken som helst post. For å gjøre det, må du prøve "UpdateOne" -funksjonen i "DB" -instruksjonen etterfulgt av "Test" -samlingen. Denne kommandoen skal starte med identifisering av et postnummer gjennom det spesifikke feltet, "ID: 1". Etter dette starter et annet sett med bruken av "$ inc" -operatøren som brukes på et bestemt enkelt felt med en viss numerisk verdi. Denne numeriske verdien økes i feltets faktiske verdi som er "alder". Utførelsen av denne spørringen viser bekreftelsen.

Test> DB.Test.UpdateOne (id: 1, $ inc: age: -1)

La oss hente posten “1” fra “Test” -samlingen ved å bruke “ID: 1” som identifikasjon i “Finn” -funksjonen til “DB” -spørsmålet. Utgangen viser at "alder" -feltet økes med en "-1" -verdi for en oversikt over "1", i.e. Alder = 22 + (-1) = 21.

Test> DB.Test.finn (id: 1)

Eksempel 2: Endre flere felt i en enkelt post

La oss bruke "$ inc" -operatøren på "Test" -samlingen for å øke flere feltverdier, inkludert feltet av dokumenttypen. Husk at disse trinnene på flere felt bare gjelder en enkelt post i en "test" -samling. Så, UpdateOne () -funksjonen brukes igjen til å oppdatere postnummeret “2” fra “Test” -samlingen som identifisert av “ID: 1”. "$ Inc" -operatøren brukes på feltet "Age" -feltet "for å legge til sin tidligere verdi med" -1 ". Også "poengsum" og "posisjon" -feltene innenfor dokumentformat "data" -feltet økes med henholdsvis "580" og "2", i henhold til utdataene ved bruk av "Dot" -produktet.

Test> DB.Test.UpdateOne (id: 2, $ inc: Age: -1, "Data.Poeng ": 580," Data.Posisjon ": 2)

Etter å ha endret posten “2” i “Test” -samlingen, tar vi en god titt på den separat via “Finn” -funksjonen som brukes i “DB” -instruksjonen ved å nevne “ID: 2” for en post å være identifisert. Verdien av en enkelt post, "alder", sammen med poengsummen og posisjonsfeltene innenfor et nestet "data" -felt økes vellykket av "$ inc" -operatøren.

Test> DB.Test.finn (id: 2)

Eksempel 3: Endre flere felt i flere poster

Etter å ha endret enkelt- og flere feltoppføringer i en enkelt post, la oss nå endre flere felt av flere poster i en samling gjennom bruken av "$ inc" -operatøren. For dette endrer vi "oppdatering" -spørsmålet. I stedet for å bruke "UpdateOne" -funksjonen, kastet vi av "UpdateMania" -funksjonen for å endre mer enn 1 post av en "test" -samling. Denne "DB" -instruksjonen kan bruke "ID" -feltet for flere poster eller bare la de krøllete parentesene "" tom for å endre alle postene til samlingen. "$ Inc" -operatøren endrer alders-, poengsum- og posisjonsfeltene i alle de 3 postene på rad for "Test" -samlingen. Den endrede tellingen “3” viser erkjennelsen etter utførelsen av denne spørringen.

Test> DB.Test.UpdateMany (, $ inc: Age: 1, "Data.Poeng ": 50," Data.Posisjon ": -1)

Etter å ha endret flere felt med flere poster etter å ha brukt "$ inc" -operatøren, er det vår rett å se på disse modifiserte postene gjennom "DB" -instruksjonen. Etter å ha vist alle de tre postene til "Test" -samlingen, finner vi at alle de tidligere spesifiserte feltene øker med spesifikke verdier for alle de 3 postene.

Test> DB.Test.finne()

Konklusjon

Denne artikkelen inkluderer sammenligning av inkrementoperatører av andre programmeringsspråk og "$ inc" -operatøren av MongoDB i dets innledende avsnitt. Etter å ha prøvd visse spørringseksempler i MongoDB -skallet, illustrerte vi bruken av "$ Inc" -operatøren for mer enn 1 formål. De to første forekomstene handler om økningen av et enkelt felt og flere felt (inkludert et dokumentformatfelt) innenfor en enkelt post. Mens den siste illustrasjonen hjelper deg å øke mange felt i flere poster av en hvilken som helst database på enkleste måte som mulig.