Hvad er metoden 'db.collection.updateOne()' i MongoDB?
Det ' db.collection.updateOne() ”-metoden opdaterer et enkelt dokument, der matcher de definerede kriterier. Hvis mere end ét dokument matcher kriterierne, vil kun det første dokument blive ændret. Det kan bruges med opdateringsoperatører, såsom ' $sæt ', ' $inc ” og mange flere .
Hvordan bruger man metoden 'db.collection.updateOne()' i MongoDB?
Det ' db.collection.updateOne() ”-metoden kan bruges til at opdatere et enkelt felt såvel som flere felter i et enkelt dokument, der matcher udvælgelseskriterierne. Desuden kan denne metode også tilføje et felt til et dokument og kan bruges med opdateringsoperatører. Syntaksen for ' db.collection.updateOne() metoden er angivet nedenfor:
Grundlæggende syntaks
db.collection.updateOne ( { filter_kriterier } , { opdatering } , { muligheder } )
Her i ovenstående syntaks:
- Denne metode vil opdatere det første dokument, der opfylder udvælgelseskriterierne
- Det ' filter_kriterier ” definerer kriterierne for opdateringen
- Det ' opdatering ” indeholder de felter, som vil blive ændret i dokumentet
- Det ' muligheder '-argument er et valgfrit argument, der ændrer funktionen af denne metode, såsom ' oprøre ' og ' antydning ”
Til dette indlæg vil vi bruge en ' Linuxhint_Col2 ' samlingens dokumenter for at demonstrere virkemåden af ' db.collection.updateOne() ” metode. For at se de dokumenter, der er gemt i denne samling, skal du udføre den medfølgende kommando:
db.Linuxhint_Col2.find ( )
Produktion
Outputtet hentede alle de dokumenter, der var gemt i ' Linuxhint_Col2 ' kollektion.
Eksempel 1: Opdater et enkelt felt
For at opdatere det enkelte felt i et dokument skal du definere dets udvælgelseskriterier og opdatere kriterierne. Opdateringskriterierne kan defineres ved hjælp af opdateringsoperatørerne. Lad os køre en forespørgsel for at opdatere ' Modeling_Fee ' felt til ' 18.000 ' hvor er ' Efternavn 'objekt er lig med' Depp ” i dokumentet:
Produktion
Outputtet returnerede succesmeddelelsen.
For at bekræfte de foretagne ændringer skal du hente det berørte dokument ved hjælp af denne ' Find() kommando:
db.Linuxhint_Col2.find ( { 'Model_Name. Last_Name' : 'Depp' } ) Produktion
Outputtet bekræftede, at dokumentet blev opdateret.
Eksempel 2: Tilføj et nyt felt ved hjælp af metoden 'db.collection.updateOne()'.
Det ' db.collection.updateOne() '-metoden tilføjer et nyt felt ved hjælp af ' $sæt ”-operatør i dokumentet, hvis den ikke allerede eksisterer. Som ' Erfaring '-feltet findes ikke for de dokumenter, hvor ' Modeling_Fee ' er mindre end ' 9000 ”.
Lad os tilføje det nye felt ' Erfaring ' med værdien ' Nybegynder ' i dokumentet, hvor ' Modeling_Fee ' er mindre end ' 9000 ' ved at bruge denne forespørgsel:
db.Linuxhint_Col2.updateOne ( { 'Modelleringsgebyr' : { $lt : 9000 } } , { $sæt : { 'Erfaring' : 'Nybegynder' } } ) Produktion
Outputtet returnerer meddelelsen, der angiver, at et dokument matcher udvælgelseskriterierne og er blevet ændret.
Lad os bekræfte det ved at hente alle de tilgængelige dokumenter i samlingen ' Linuxhint_Col2 ”:
db.Linuxhint_Col2.find ( ) Produktion
Outputtet viser, at et dokument, der opfylder betingelsen, er ændret, og et nyt felt er indsat.
Eksempel 3: Opdater flere felter i et dokument ved hjælp af metoden 'db.collection.updateOne()'
Brugeren kan endda ændre flere felter i et enkelt dokument. Her vil denne forespørgsel nedenfor ændre efternavnet og alderen for dokumentet, hvor ' Fornavn ' lige med ' Noah ':
Produktion
Forespørgslen er blevet udført uden nogen fejl.
For at bekræfte ændringerne skal du bruge 'find()'-metoden til at hente dokumentet, hvor ' Fornavn ' lige med ' Noah :
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Noah' } ) Produktion
Outputtet returnerede det ændrede dokument med succes.
Eksempel 4: Brug metoden 'db.collection.updateOne()' med opdateringsoperatører
Som i det foregående eksempel brugte vi ' $sæt ' opdater operatør for at ændre værdierne i ' db.collection.updateOne() ” metode. Lad os prøve at bruge en anden opdateringsoperatør ' $inc ” som øger feltet med det angivne beløb.
Her i forespørgslen nedenfor søger metoden efter dokumentet, hvor ' Fornavn ' lige med ' Kate ' og tilføjer ' 1000 ' i ' Modeling_Fee ' felts værdi:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Modelleringsgebyr: 1000 } } ) Produktion
Outputtet returnerede en succesmeddelelse.
For at se ændringerne, brug ' Find() ” metode til at hente det berørte dokument:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } ) Produktion
Outputtet viser den ændrede værdi af ' Modeling_Fee ”.
Eksempel 5: Tilføj et nyt dokument, hvis det ikke allerede eksisterer ved at bruge 'upsert'-argument
Det valgfrie argument kan bruges til at ændre denne metodes adfærd. En sådan mulighed er ' oprøre ” som tilføjer et nyt dokument, hvis intet allerede eksisterende dokument opfylder de udvælgelseskriterier, der er defineret i forespørgslen.
Lad os prøve at tilføje et nyt dokument ved at definere de udvælgelseskriterier, der ikke opfylder nogen allerede eksisterende dokumenter. Indstil derefter nogle felter til det og tilføj muligheden ' oprøre ' som 'sand' som vist i kommandoen nedenfor:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'David' } , { $sæt : { Modelleringsgebyr: 10.000 , Model_Alder: 23 , 'Model_Name. Last_Name' : 'Smith' } } , { oprør: rigtigt } ) Produktion
Outputtet viste den bekræftede meddelelse som sand.
Til sidst skal du kontrollere dens ændring ved at køre denne kommando:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'David' } ) Produktion
Outputtet viste, at det nye dokument er blevet tilføjet.
Konklusion
Det ' db.collection.updateOne() ” metode i MongoDB bruges til at opdatere det første dokument, der opfylder udvælgelseskriterierne. Det kan ændre et enkelt såvel som flere felter i et dokument ved at bruge opdateringsoperatørerne, såsom ' $sæt ' og ' $inc ”. Desuden accepterer denne metode også valgfrie argumenter for at ændre metodens adfærd, såsom ' oprøre ” som tilføjer et nyt dokument, hvis udvælgelseskriterierne ikke matcher noget eksisterende dokument. Dette indlæg har diskuteret brugen af ' db.collection.updateOne() ” metode i MongoDB.