MongoDB UpdateOne

MongoDB UpdateOne
MongoDB -databasen inneholder flere funksjoner på lagrede data. Et av de grunnleggende kravene til de lagrede dataene er å tillate all modifisering på den. UpdateOne og UpdateMania er to grunnleggende funksjoner som brukes i MongoDB. I denne artikkelen er UpdateOne temaet som skal diskuteres. Denne funksjonen oppdaterer elementet som matches først i samlingen i henhold til spørringen vi brukte, selv om det er flere rader matchet. Om gangen er bare ett element oppdatert.

Syntaks

>> db.Collection_name.UpdateOne (filter, dokument/ attributt, alternativer)

La oss nå utdype argumentene til UpdateOne ():

  • Filter: Det fungerer som Find () -metoden. Vi bruker valgkriteriene i denne delen.
  • Dokument: Den inneholder oppdateringsdelen. Med andre ord, dokumentet du vil erstatte er skrevet her, og også det nye attributtet du vil legge til.
  • Alternativ: Det er en valgfri del som kan inneholde upsert -funksjonen.

Når du har installert MongoDB i systemet ditt, kan du få tilgang til det gjennom terminalen ved å bruke 'Mongo'. De forutsetningstrinnene som brukes til å implementere MongoDB UpdateOne, skal koble seg til DB og opprette en samling. Noe relatert informasjon er definert nedenfor.

Databasenavn: Demo
Samling: Jobb

Samlingen som brukes til å holde data i MongoDB er opprettet gjennom en enkel kommando, vi har opprettet samlingen med navnet 'Job'. En Create Command brukes til dette formålet.

>> db.CreateCollection ('jobb')

Etter at du har opprettet samlingen, kan vi legge inn data i den. I stedet for å bruke Insertone -tilnærmingen, har vi brukt InsertMany, da det kan legge til data gjennom en enkelt kommando, trenger du ikke legge til hver rad hver gang.

>> db.jobb.InsertMany ([FirstName: "John", LastName: "Dew", e -post: "[email protected] ", lønn: 5000,

Tilsvarende har vi lagt til 6 rader i samlingen, hver atskilt med komma. 4 dokumenter for hver jobbrekke brukes. Vi har tildelt en verdi til hvert attributt.

Du kan se at når vi først har kommet inn i alle rader samlet, blir anerkjennelsen gitt sann. Og for hver rad og på samme måte tildeles ID -er på slutten kollektivt.

Du kan se alle angitte data gjennom funnet ().pen () funksjon gjennom samlingsnavnet.

>> db.jobb.finne().ganske()

Vi har tatt et utdrag av de første 4 radene.

UpdateOne ()

Nå vil vi bruke UpdateOne () -funksjonen i kommandoene for å demonstrere arbeidet med denne funksjonen.

Eksempel 1: Oppdater et enkelt eksisterende attributt

Vi ønsker å endre et felt som allerede er til stede i radene i samlingen. Det er flere oppdateringsalternativer. Blant dem bruker vi alternativet '$ set', som brukes til å tilordne en verdi til en ny attributt eller erstatte den forrige verdien med en ny.

For å hente de berørte dataene, har vi brukt lønnsattributtet i hentedelen. I følge spørringen må vi få resultatet med en lønn på 5000. Når denne raden blir hentet, har vi brukt en betingelse for å erstatte fornavnet til posten med et nytt navn som er 'Morgan'.

>> db.jobb.UpdateOne (lønn: 5000, $ set: FirstName: 'Morgan')

Denne kommandoen vil bringe den første posten i samlingen av databasen i henhold til den spesifiserte lønnen. Det eldre fornavnet var John. Etter å ha brukt kommandoen, vil John bli erstattet med 'Morgan'. Når du utfører kommandoen, vil du igjen få bekreftelsen. Dette betyr at spørringen har kjørt vellykket ved å vise at matchedCount -nummeret er 1. Derfor vil det samme bli endret. Vi vil sjekke den resulterende verdien ved å bruke funnet ().Pen () kommando.

Du kan observere endringen i fornavnet.

Eksempel 2: Oppdater samling ved å legge til et enkelt attributt

Uavhengig av å erstatte de eksisterende dataene, kan det hende du også må legge til ny informasjon i den eksisterende posten. Dette gjøres også gjennom oppdateringskommandoen. Akkurat som det forrige eksemplet, vil alternativet $ set bli brukt igjen for å legge til et nytt dokument i samlingen. Filtrering vil bli gjort i henhold til fornavnet. Hvis det spesifiserte navnet som er nevnt i spørringen blir matchet, vil vi legge til et nytt dokument av stedet til den spesifiserte raden. Vi ønsker å legge til stedsfeltet til raden med fornavnet 'Toshay'.

>> db.jobb.UpdateOne (FirstName: "Toshay", $ set: location: "USA")

MongoDB -terminalen vil svare. Den ene matchede raden blir deretter endret. Vi vil se modifiseringen gjennom Find () -funksjonen.

Det er den andre platen. Så et nytt feltfelt sammen med den tildelte verdien legges til.

Eksempel 3: Oppdater dokumentet ved å øke verdien

Det er ikke nødvendig å erstatte eller legge til et nytt dokument hver gang. Det er også mulig at vi kan øke verdien som allerede er til stede med en verdi ved å nevne den i spørringen. Det beløpet legges til det forrige, og som resultat genereres en ny verdi. For dette formålet bruker vi en oppdateringsoperatør “$ inc” som refererer til økning. Denne operatøren brukes i stedet for '$ set' fordi vi ikke ønsker å sette verdien, men for å øke den.

Resultatet vil bli filtrert i henhold til fornavnet, og deretter vil lønnen til den personen bli økt med 500. Navnet er 'James' og hans opprinnelige lønn er 7500.

>> db.jobb.UpdateOne (FirstName: "James", $ inc: lønn: 500)

Ved utførelse vil du observere at lønnen til James blir 8000 fra 7500 gjennom $ Inc -operatøren.

Konklusjon

MongoDB UpdateOne er funksjonen som brukes til å oppdatere et enkelt dokument som oppstår først i samlingen hvis flere kamper blir funnet. Vi prøvde å forklare funksjonene og funksjonalitetene til denne funksjonen til MongoDB. I starten har vi beskrevet syntaksen, og deretter blir noen grunnleggende eksempler forklart for å unngå tvetydighet angående funksjonene til denne funksjonen. UpdateOne tilbyr noen operatører som brukes i spørringen. For eksempel brukes $ Set og $ Inc i denne artikkelen for å sette den nye verdien til dokumentet og for å øke den forrige til en viss grad.