De findOneAndUpdate () metoden returnerer dokumentet etter oppdateringen, mens UpdateOne () Metode for MongoDB oppdaterer også ett dokument, men det returnerer ikke noe dokument.
I denne artikkelen vil du lære å forstå og anvende findoneandupdate() Metode for MongoDB for å matche og oppdatere et enkelt dokument.
Hvordan findoneandupdate () fungerer i mongodb
Arbeidsmekanismen for denne metoden er basert på syntaks gitt nedenfor:
db.Samlingsnavn.findOneAndUpDate (filter, update, opsjoner)I syntaks ovenfor:
Samlingsnavn refererer til samlingen av en mongo -database der dokumentet ligger.
filter er en betingelse for å matche dokumentet.
Oppdater Inneholder felt (er) og tilhørende verdi (er) som skal oppdateres
alternativer er parametrene for å avgrense oppdateringsbehandlingen. For eksempel "Maxtimems”Alternativet brukes til å begrense tiden for utførelse av en spørring. Hvis den spesifiserte tidsgrensen overstiger, blir ikke spørringen utført.
Hvordan bruke findOneAndUpDate () -metode i MongoDB
I denne delen er en detaljert guide gitt ved hjelp av flere eksempler for å bruke FindOneAndUpDate () -metode:
Eksempel 1: Oppdatering av et enkelt dokument
For dette eksemplet vil vi bruke en “bærbare datamaskiner”Samling og følgende innhold ligger i det:
> DB.bærbare datamaskiner.finne().ganske()Vi vil legge til en "Status" felt med verdien “tilgjengelig”Til dokumentene der“Enheter”Verdien er større enn eller lik“50“. Kommandoen nevnt nedenfor vil utføre den ovennevnte oppdateringen ved hjelp av findOneAndUpdate () metode.
> DB.bærbare datamaskiner.findOneAndUpDate ("enheter": $ gte: 50, $ set: "status": "tilgjengelig")Følgende observasjoner trekkes fra output ovenfor:
De findOneAndUpdate () Metoden returnerte originaldokumentet (før oppdatering).
Ettersom det er to dokumenter som har “Enheter”Verdi større enn eller lik“50", men findOneAndUpdate () Metoden vurderer den første som samsvarer med tilstanden.
Du kan bekrefte oppdateringen ved å bruke kommandoen som er nevnt nedenfor: og det blir lagt merke til at bare ett dokument er lagt til med feltet "Status“.
> DB.bærbare datamaskiner.finne().ganske()Eksempel 2: Returnerer det oppdaterte dokumentet
Som standard returnerer FindOneAndUpDate () -metoden originaldokumentet. Du kan få det oppdaterte dokumentet til gjengjeld ved å stille inn “ReturnNewDocument”Alternativets verdi til“ekte“.
Kommandoen skrevet nedenfor vil legge til et nytt felt “katt”Og verdien er satt til“Spill“. Oppdateringen utføres til dokumentet der "Pris”Verdi tilsvarer 1750. Dessuten "ReturnNewDocument”Verdien er“ekte“. Så det må returnere det oppdaterte dokumentet.
> DB.bærbare datamaskiner.FindOneAndUpDate ("Price": 1750, $ set: "Cat": "gaming", returnNewDocument: true)Utgangen viser at dokumentet som returneres av kommandoen ovenfor er en oppdatert versjon.
Eksempel 3: Bruke FindOneAndUpDate () -metode med alternativer
Flere alternativer støttes av denne metoden, da vi har brukt "ReturnNewDocument”Alternativ i“Eksempel 2“. I denne delen blir flere andre alternativer støttet av denne metoden forklart.
Upsert: Verdien av “Upsert”Alternativet er usant som standard. Og hvis det er satt til “ekte“, findOneAndUpdate () Metoden vil opprette et nytt dokument hvis tilstanden ikke klarer å samsvare med noe dokument.
For eksempel vil den nedenfor-nevnte kommandoen se etter dokumentene der "Gjøre”Verdikamper”Romvesen”I bærbare datamaskiner samling. Siden intet dokument har en feltverdi “Romvesen", Derfor vil et nytt dokument bli opprettet fordi vi har satt "Upsert”Verdi som“ekte“.
Merk: Vi har også brukt “ReturnNewDocument”Alternativ for å få det oppdaterte dokumentet til gjengjeld.
> DB.bærbare datamaskiner.FindOneAndUpDate ("Make": "Alien", $ set: "Price": 1500, "Cat": "Gaming", Upsert: True, ReturnNewDocument: True)Maxtimems: Dette alternativet brukes til å begrense tiden (i millisekunder) for oppdateringskommandoen. Hvis den spesifiserte tidsgrensen overstiger, vil spørringen returnere en feil. For eksempel har vi satt "Maxtimems”Alternativ for å verdsette”2”I den nedenfor nevnte kommandoen:
> DB.bærbare datamaskiner.FindOneAndUpDate ("Make": "Alien", $ set: "enheter": 15, "Price": 1850, returnNewDocument: true, maxtimems: 2)Merk: Verdien av “Maxtimems”Alternativet må være numerisk (ikke flyte eller annen datatype).
Konklusjon
Oppdateringsprosessen har en nøkkelrolle i ethvert databasestyringssystem fordi dataene må oppdateres med tid i enhver organisasjon. Flere oppdateringens metodeutvidelser brukes av mongoDB som findOneAndUpdate (). I dette informative innlegget har vi gitt en kort anvendelse av denne metoden i MongoDB. Den målrettede metoden samsvarer med det første dokumentet basert på tilstanden og oppdaterer deretter det spesifikke feltet (e) i det dokumentet.