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:
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 ':
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.