Vad är metoden 'db.collection.updateOne()' i MongoDB?
den ' db.collection.updateOne() ”-metoden uppdaterar ett enda dokument som matchar de definierade kriterierna. Om mer än ett dokument matchar kriterierna kommer endast det första dokumentet att ändras. Den kan användas med uppdateringsoperatörer, som ' $set ”, “ $inc ” och många fler .
Hur använder man metoden 'db.collection.updateOne()' i MongoDB?
den ' db.collection.updateOne() ”-metoden kan användas för att uppdatera ett enda fält såväl som flera fält i ett enda dokument som matchar urvalskriterierna. Dessutom kan denna metod också lägga till ett fält i ett dokument och kan användas med uppdateringsoperatörer. Syntaxen för ' db.collection.updateOne() ”-metoden finns nedan:
Grundläggande syntax
db.collection.updateOne ( { filter_kriterier } , { uppdatering } , { alternativ } )
Här i ovanstående syntax:
- Denna metod kommer att uppdatera det första dokumentet som uppfyller urvalskriterierna
- den ' filter_kriterier ” definierar kriterierna för uppdateringen
- den ' uppdatering ” innehåller de fält som kommer att ändras i dokumentet
- den ' alternativ '-argument är ett valfritt argument som modifierar hur denna metod fungerar, till exempel ' uppröra ' och ' antydan ”
För det här inlägget kommer vi att använda en ' Linuxhint_Col2 ' samlingens dokument för att visa hur ' db.collection.updateOne() 'metoden. För att se dokumenten som är lagrade i den här samlingen, kör det angivna kommandot:
db.Linuxhint_Col2.find ( )
Produktion
Utdata hämtade alla dokument som lagrats i ' Linuxhint_Col2 ” samling.
Exempel 1: Uppdatera ett enskilt fält
För att uppdatera det enskilda fältet i ett dokument, definiera dess urvalskriterier och uppdatera kriterierna. Uppdateringskriterierna kan definieras med hjälp av uppdateringsoperatorerna. Låt oss köra en fråga för att uppdatera ' Modelleringsavgift ' fältet till ' 18 000 ' där den ' Efternamn 'objekt är lika med' Depp ' i dokumentet:
Produktion
Utdatat returnerade framgångsmeddelandet.
För att verifiera ändringarna som gjorts, hämta det berörda dokumentet med denna ' hitta() ” kommando:
db.Linuxhint_Col2.find ( { 'Model_Name. Last_Name' : 'Depp' } ) Produktion
Utdata verifierade att dokumentet uppdaterades framgångsrikt.
Exempel 2: Lägg till ett nytt fält med metoden “db.collection.updateOne()”.
den ' db.collection.updateOne() ”-metoden lägger till ett nytt fält med hjälp av ” $set ”-operatör i dokumentet om den inte redan finns. Som den ' Erfarenhet '-fältet finns inte för de dokument där ' Modelleringsavgift ' är mindre än ' 9000 ”.
Låt oss lägga till det nya fältet ' Erfarenhet ' med värdet ' Nybörjare ' i dokumentet där ' Modelleringsavgift ' är mindre än ' 9000 ' med den här frågan:
db.Linuxhint_Col2.updateOne ( { 'Modelleringsavgift' : { $lt : 9000 } } , { $set : { 'Erfarenhet' : 'Nybörjare' } } ) Produktion
Utdatat returnerar meddelandet som indikerar att ett dokument matchar urvalskriterierna och har modifierats framgångsrikt.
Låt oss verifiera det genom att hämta alla tillgängliga dokument i samlingen ' Linuxhint_Col2 ”:
db.Linuxhint_Col2.find ( ) Produktion
Utdata visar att ett dokument som uppfyller villkoret har ändrats och ett nytt fält har infogats.
Exempel 3: Uppdatera flera fält i ett dokument med metoden 'db.collection.updateOne()'
Användaren kan till och med ändra flera fält i ett enda dokument. Här kommer den här frågan nedan att ändra efternamnet och åldern för dokumentet där ' Förnamn 'likar med' Noah ':
Produktion
Frågan har utförts utan några fel.
För att verifiera ändringarna, använd metoden 'find()' för att hämta dokumentet där ' Förnamn 'likar med' Noah :
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Noah' } ) Produktion
Utdatat returnerade det ändrade dokumentet.
Exempel 4: Använd metoden 'db.collection.updateOne()' med uppdateringsoperatörer
Som i föregående exempel använde vi ' $set ' uppdatera operatören för att ändra värdena i ' db.collection.updateOne() 'metoden. Låt oss försöka använda en annan uppdateringsoperatör ' $inc ” som ökar fältet med det angivna beloppet.
Här i frågan nedan söker metoden efter dokumentet där ' Förnamn 'likar med' Kate ” och lägger till ” 1000 ' i ' Modelleringsavgift ' fältets värde:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Modelleringsavgift: 1000 } } ) Produktion
Utdatat returnerade ett framgångsmeddelande.
För att se ändringarna, använd ' hitta() ” metod för att hämta det berörda dokumentet:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } ) Produktion
Utdata visar det modifierade värdet av ' Modelleringsavgift ”.
Exempel 5: Lägg till ett nytt dokument om det inte redan finns med hjälp av 'upsert'-argument
Det valfria argumentet kan användas för att ändra beteendet för denna metod. Ett sådant alternativ är ' uppröra ” som lägger till ett nytt dokument om inget redan existerande dokument uppfyller urvalskriterierna som definierats i frågan.
Låt oss försöka lägga till ett nytt dokument genom att definiera urvalskriterierna som inte uppfyller några redan befintliga dokument. Efter det, ställ in några fält för det och lägg till alternativet ' uppröra ' som 'sant' som visas i kommandot nedan:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'David' } , { $set : { Modelleringsavgift: 10 000 , Model_Age: 23 , 'Model_Name. Last_Name' : 'Smed' } } , { uppröra: Sann } ) Produktion
Utdatat visade att det bekräftade meddelandet var sant.
Slutligen, verifiera dess modifiering genom att köra detta kommando:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'David' } ) Produktion
Resultatet visade att det nya dokumentet har lagts till.
Slutsats
den ' db.collection.updateOne() ” metod i MongoDB används för att uppdatera det första dokumentet som uppfyller urvalskriterierna. Den kan modifiera ett enstaka eller flera fält i ett dokument genom att använda uppdateringsoperatorerna, som ' $set ' och ' $inc ”. Dessutom accepterar denna metod även valfria argument för att ändra metodens beteende, som ' uppröra ” som lägger till ett nytt dokument om urvalskriterierna inte matchar något befintligt dokument. Det här inlägget har diskuterat användningen av ' db.collection.updateOne() ”-metoden i MongoDB.