Kaj je metoda »db.collection.updateOne()« v MongoDB?
' db.collection.updateOne() ” posodablja en dokument, ki ustreza definiranim kriterijem. Če več kot en dokument ustreza kriterijem, bo spremenjen le prvi dokument. Uporablja se lahko z operaterji posodobitve, kot je » $set ”, “ $inc « in Veliko več .
Kako uporabiti metodo “db.collection.updateOne()” v MongoDB?
' db.collection.updateOne() ” se lahko uporabi za posodobitev enega polja ali več polj enega dokumenta, ki ustrezajo izbirnim kriterijem. Poleg tega lahko s to metodo dodate polje v dokument in jo lahko uporabite z operaterji posodobitve. Sintaksa ' db.collection.updateOne() ” je navedena spodaj:
Osnovna sintaksa
db.collection.updateOne ( { merila_filtra } , { nadgradnja } , { opcije } )
Tukaj v zgornji sintaksi:
- Ta metoda bo posodobila prvi dokument, ki izpolnjuje merila za izbor
- ' merila_filtra ” določa kriterije za posodobitev
- ' nadgradnja ” vsebuje polja, ki bodo spremenjena v dokumentu
- ' opcije ' je neobvezen argument, ki spremeni delovanje te metode, kot je ' upsert « in » namig ”
Za to objavo bomo uporabili » Linuxhint_Col2 ' dokumenti zbirke za prikaz delovanja ' db.collection.updateOne() ” metoda. Za ogled dokumentov, shranjenih v tej zbirki, izvedite navedeni ukaz:
db.Linuxhint_Col2.find ( )
Izhod
Izhod je pridobil vse dokumente, shranjene v » Linuxhint_Col2 ” zbirka.
1. primer: posodobite eno polje
Če želite posodobiti posamezno polje v dokumentu, določite njegova izbirna merila in posodobite merila. Merila za posodabljanje je mogoče določiti z uporabo operaterjev za posodabljanje. Zaženimo poizvedbo za posodobitev » Modeling_Fee »polje v« 18000 ' kje za ' Priimek 'predmet je enak' Depp « v dokumentu:
Izhod
Izhod je vrnil sporočilo o uspehu.
Če želite preveriti opravljene spremembe, pridobite zadevni dokument s tem ' najti() ” ukaz:
db.Linuxhint_Col2.find ( { 'Ime_modela. Priimek' : 'Depp' } ) Izhod
Izhod je potrdil, da je bil dokument uspešno posodobljen.
2. primer: dodajte novo polje z metodo »db.collection.updateOne()«
' db.collection.updateOne() ' doda novo polje z uporabo ' $set ” v dokumentu, če še ne obstaja. Kot ' Izkušnje « polje ne obstaja za dokumente, kjer je » Modeling_Fee ' je manj kot ' 9000 ”.
Dodajmo novo polje ' Izkušnje ' z vrednostjo ' Začetnik « v dokumentu, kjer je » Modeling_Fee ' je manj kot ' 9000 « z uporabo te poizvedbe:
db.Linuxhint_Col2.updateOne ( { 'Modeling_Fee' : { $lt : 9000 } } , { $set : { 'izkušnje' : 'Začetnik' } } ) Izhod
Izhod vrne sporočilo, ki nakazuje, da se en dokument ujema z izbirnimi kriteriji in je uspešno spremenjen.
Naj to preverimo tako, da pridobimo vse dokumente, ki so na voljo v zbirki ' Linuxhint_Col2 ”:
db.Linuxhint_Col2.find ( ) Izhod
Izhod pokaže, da je bil en dokument, ki izpolnjuje pogoj, spremenjen in da je novo polje uspešno vstavljeno.
3. primer: posodobite več polj dokumenta z metodo »db.collection.updateOne()«
Uporabnik lahko spremeni celo več polj v enem dokumentu. Tukaj bo ta poizvedba, podana spodaj, spremenila priimek in starost za dokument, kjer je » Ime 'je enako' Noah “:
Izhod
Poizvedba je bila izvedena brez napak.
Če želite preveriti spremembe, uporabite metodo »find()«, da pridobite dokument, kjer je » Ime 'je enako' Noah :
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Noah' } ) Izhod
Izhod je uspešno vrnil spremenjeni dokument.
4. primer: uporabite metodo »db.collection.updateOne()« z operaterji posodobitve
Kot v prejšnjem primeru smo uporabili » $set ” posodobite operater za spreminjanje vrednosti v db.collection.updateOne() ” metoda. Poskusimo uporabiti drug operater posodobitve ' $inc ”, ki poveča polje z določeno količino.
Tukaj v spodnji poizvedbi metoda išče dokument, kjer je » Ime 'je enako' Kate « in dodaja » 1000 ' v ' Modeling_Fee ” vrednost polja:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'Kate' } , { $inc : { Modeling_Fee: 1000 } } ) Izhod
Izhod je vrnil sporočilo o uspehu.
Za ogled sprememb uporabite » najti() ” za pridobitev prizadetega dokumenta:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'Kate' } ) Izhod
Izhod prikazuje spremenjeno vrednost ' Modeling_Fee ”.
Primer 5: Dodajte nov dokument, če še ne obstaja, z uporabo argumenta »upsert«
Izbirni argument lahko uporabite za spreminjanje obnašanja te metode. Ena taka možnost je ' upsert ”, ki doda nov dokument, če noben že obstoječi dokument ne ustreza izbirnim kriterijem, določenim v poizvedbi.
Poskusimo dodati nov dokument tako, da določimo izbirne kriterije, ki ne izpolnjujejo nobenih že obstoječih dokumentov. Nato nastavite nekaj polj in dodajte možnost ' upsert « kot »true«, kot je prikazano v spodnjem ukazu:
db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'David' } , { $set : { Modeling_Fee: 10000 , Model_Age: 23 , 'Ime_modela. Priimek' : 'Smith' } } , { upsert: prav } ) Izhod
Izhod je pokazal, da je potrjeno sporočilo resnično.
Na koncu preverite njegovo spremembo tako, da zaženete ta ukaz:
db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'David' } ) Izhod
Izhod je pokazal, da je bil nov dokument uspešno dodan.
Zaključek
' db.collection.updateOne() ” metoda v MongoDB se uporablja za posodobitev prvega dokumenta, ki ustreza izbirnim kriterijem. Spremeni lahko eno ali več polj v dokumentu z uporabo operaterjev posodobitve, kot je ' $set « in » $inc ”. Poleg tega ta metoda sprejema tudi neobvezne argumente za spreminjanje obnašanja metode, kot je ' upsert ”, ki doda nov dokument v primeru, da se merila za izbor ne ujemajo z nobenim obstoječim dokumentom. Ta objava je obravnavala uporabo » db.collection.updateOne() ” v MongoDB.