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

Hvad Er Db Collection Updateone I Mongodb



MongoDB er en kraftfuld ikke-relationel database, der kan gemme flere dokumenter. Nogle gange skal brugeren muligvis opdatere et enkelt dokument, der opfylder visse kriterier. I denne situation kan de bruge ' db.collection.updateOne() ” metode, som opdaterer og ændrer det første dokument, der opfylder udvælgelseskriterierne, og ændrer det.

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:

db.Linuxhint_Col2.updateOne ( { 'Model_Name. Last_Name' : 'Depp' } , { $sæt : { Modelleringsgebyr: 18.000 } } )

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

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Noah' } , { $sæt : { 'Model_Name. Last_Name' : 'Då' , 'Model_Alder' : 23 } } )

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.