Hva er db.collection.updateOne() i MongoDB?

Hva Er Db Collection Updateone I Mongodb



MongoDB er en kraftig ikke-relasjonell database som kan lagre flere dokumenter. Noen ganger kan det hende at brukeren må oppdatere et enkelt dokument som oppfyller visse kriterier. I denne situasjonen kan de bruke ' db.collection.updateOne() ”-metoden, som oppdaterer og endrer det første dokumentet som oppfyller utvalgskriteriene og endrer det.

Hva er 'db.collection.updateOne()'-metoden i MongoDB?

« db.collection.updateOne() ”-metoden oppdaterer et enkelt dokument som samsvarer med de definerte kriteriene. Hvis mer enn ett dokument samsvarer med kriteriene, vil kun det første dokumentet bli endret. Den kan brukes med oppdateringsoperatører, for eksempel ' $sett ', ' $inc ' og mange flere .

Hvordan bruke 'db.collection.updateOne()'-metoden i MongoDB?

« db.collection.updateOne() ”-metoden kan brukes til å oppdatere et enkelt felt så vel som flere felt i et enkelt dokument som samsvarer med utvalgskriteriene. Dessuten kan denne metoden også legge til et felt i et dokument og kan brukes med oppdateringsoperatører. Syntaksen til ' db.collection.updateOne() '-metoden er gitt nedenfor:







Grunnleggende syntaks



db.collection.updateOne ( { filter_kriterier } , { Oppdater } , { alternativer } )

Her i syntaksen ovenfor:



  • Denne metoden vil oppdatere det første dokumentet som oppfyller utvalgskriteriene
  • « filter_kriterier ” definerer kriteriene for oppdateringen
  • « Oppdater ” inneholder feltene som vil bli endret i dokumentet
  • « alternativer '-argument er et valgfritt argument som endrer funksjonen til denne metoden, for eksempel ' opprøre ' og ' hint

For dette innlegget vil vi bruke en ' Linuxhint_Col2 samlingens dokumenter for å demonstrere virkemåten til db.collection.updateOne() 'metoden. For å se dokumentene som er lagret i denne samlingen, utfør den angitte kommandoen:





db.Linuxhint_Col2.find ( )

Produksjon

Utdataene hentet alle dokumentene som er lagret i ' Linuxhint_Col2 ' samling.



Eksempel 1: Oppdater et enkelt felt
For å oppdatere enkeltfeltet i et dokument, definer dets utvalgskriterier og oppdater kriteriene. Oppdateringskriteriene kan defineres ved hjelp av oppdateringsoperatørene. La oss kjøre en spørring for å oppdatere ' Modelleringsavgift '-feltet til ' 18 000 ' hvor i ' Etternavn 'objekt er lik' Depp ' i dokumentet:

db.Linuxhint_Col2.updateOne ( { 'Model_Name. Last_Name' : 'Depp' } , { $sett : { Modelleringsavgift: 18 000 } } )

Produksjon

Utdataene returnerte suksessmeldingen.

For å bekrefte endringene som er gjort, hent det berørte dokumentet ved å bruke denne ' finne() ' kommando:

db.Linuxhint_Col2.find ( { 'Model_Name. Last_Name' : 'Depp' } )

Produksjon

Utdataene bekreftet at dokumentet ble oppdatert.

Eksempel 2: Legg til et nytt felt ved å bruke 'db.collection.updateOne()'-metoden
« db.collection.updateOne() '-metoden legger til et nytt felt ved å bruke ' $sett ”-operatør i dokumentet hvis den ikke allerede eksisterer. Som ' Erfaring '-feltet eksisterer ikke for dokumentene der ' Modelleringsavgift ' er mindre enn ' 9000 '.

La oss legge til det nye feltet ' Erfaring ' med verdien ' Nybegynner ' i dokumentet der ' Modelleringsavgift ' er mindre enn ' 9000 ' ved å bruke denne spørringen:

db.Linuxhint_Col2.updateOne ( { 'Modellering_Fee' : { $lt : 9000 } } , { $sett : { 'Erfaring' : 'Nybegynner' } } )

Produksjon

Utdataene returnerer meldingen som indikerer at ett dokument samsvarer med utvalgskriteriene og er vellykket modifisert.

La oss verifisere det ved å hente alle dokumentene som er tilgjengelige i samlingen ' Linuxhint_Col2 ':

db.Linuxhint_Col2.find ( )

Produksjon

Utdataene viser at ett dokument som oppfyller betingelsen er endret, og et nytt felt er satt inn.

Eksempel 3: Oppdater flere felt i et dokument ved å bruke 'db.collection.updateOne()'-metoden
Brukeren kan til og med endre flere felt i et enkelt dokument. Her vil denne spørringen nedenfor endre etternavnet og alderen for dokumentet der ' Fornavn ' er lik ' Noah ':

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Noah' } , { $sett : { 'Model_Name. Last_Name' : 'Doe' , 'Model_Alder' : 23 } } )

Produksjon

Spørringen har blitt utført uten noen feil.

For å bekrefte endringene, bruk 'finn()'-metoden for å hente dokumentet der ' Fornavn ' er lik ' Noah :

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Noah' } )

Produksjon

Utdataene returnerte det endrede dokumentet.

Eksempel 4: Bruk 'db.collection.updateOne()'-metoden med oppdateringsoperatører
Som i forrige eksempel brukte vi ' $sett ' oppdater operatøren for å endre verdiene i ' db.collection.updateOne() 'metoden. La oss prøve å bruke en annen oppdateringsoperatør ' $inc ” som øker feltet med det angitte beløpet.

Her i spørringen nedenfor, søker metoden etter dokumentet der ' Fornavn ' er lik ' Kate ' og legger til ' 1000 ' i ' Modelleringsavgift '-feltets verdi:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Modelleringsavgift: 1000 } } )

Produksjon

Utdataene returnerte en suksessmelding.

For å se endringene, bruk ' finne() ' metode for å hente det berørte dokumentet:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } )

Produksjon

Utgangen viser den modifiserte verdien av ' Modelleringsavgift '.

Eksempel 5: Legg til et nytt dokument hvis det ikke allerede eksisterer ved å bruke 'upsert'-argument
Det valgfrie argumentet kan brukes til å endre oppførselen til denne metoden. Et slikt alternativ er ' opprøre ” som legger til et nytt dokument hvis ingen allerede eksisterende dokument oppfyller utvalgskriteriene som er definert i spørringen.

La oss prøve å legge til et nytt dokument ved å definere utvalgskriteriene som ikke oppfyller noen allerede eksisterende dokumenter. Sett deretter noen felt for det og legg til alternativet ' opprøre ' som 'true' som vist i kommandoen nedenfor:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'David' } , { $sett : { Modelleringsavgift: 10 000 ,  Model_Alder: 23 , 'Model_Name. Last_Name' : 'Smith' } } , { opprør: ekte } )

Produksjon

Utgangen viste den bekreftede meldingen som sann.

Til slutt, bekreft endringen ved å kjøre denne kommandoen:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'David' } )

Produksjon

Utdataene viste at det nye dokumentet ble lagt til.

Konklusjon

« db.collection.updateOne() ” metoden i MongoDB brukes til å oppdatere det første dokumentet som oppfyller utvalgskriteriene. Den kan endre et enkelt så vel som flere felt i et dokument ved å bruke oppdateringsoperatørene, for eksempel ' $sett ' og ' $inc '. Dessuten godtar denne metoden også valgfrie argumenter for å endre oppførselen til metoden, for eksempel ' opprøre ” som legger til et nytt dokument i tilfelle utvalgskriteriene ikke samsvarer med et eksisterende dokument. Dette innlegget har diskutert bruken av ' db.collection.updateOne() ”-metoden i MongoDB.