Što je metoda “db.collection.updateOne()” u MongoDB-u?
' db.collection.updateOne() ” metoda ažurira jedan dokument koji odgovara definiranim kriterijima. Ako više od jednog dokumenta odgovara kriterijima samo će prvi dokument biti izmijenjen. Može se koristiti s operatorima ažuriranja, kao što je ' $set ”, “ $inc ” i mnogo više .
Kako koristiti metodu “db.collection.updateOne()” u MongoDB-u?
' db.collection.updateOne() ” metoda se može koristiti za ažuriranje jednog polja, kao i više polja jednog dokumenta koja odgovaraju kriterijima odabira. Štoviše, ova metoda također može dodati polje u dokument i može se koristiti s operatorima ažuriranja. Sintaksa ' db.collection.updateOne() ” metoda je navedena u nastavku:
Osnovna sintaksa
db.collection.updateOne ( { kriterij_filtra } , { Ažuriraj } , { opcije } )
Ovdje u gornjoj sintaksi:
- Ova metoda će ažurirati prvi dokument koji zadovoljava kriterije odabira
- ' kriterij_filtra ” definira kriterije za ažuriranje
- ' Ažuriraj ” sadrži polja koja će biti izmijenjena u dokumentu
- ' opcije ' argument je izborni argument koji modificira rad ove metode, kao što je ' upsert ' i ' savjet ”
Za ovaj post koristit ćemo ' Linuxhint_Col2 ' dokumenti zbirke za prikaz rada ' db.collection.updateOne() ” metoda. Za pregled dokumenata pohranjenih u ovoj zbirci izvršite naredbu:
db.Linuxhint_Col2.find ( )
Izlaz
Izlaz je dohvatio sve dokumente pohranjene u ' Linuxhint_Col2 ” zbirka.
Primjer 1: ažuriranje jednog polja
Da biste ažurirali jedno polje u dokumentu, definirajte njegove kriterije odabira i ažurirajte kriterije. Kriteriji ažuriranja mogu se definirati pomoću operatora ažuriranja. Pokrenimo upit za ažuriranje ' Naknada za modeliranje ' polje do ' 18000 ' gdje je ' Prezime 'objekt je jednak' Depp ” u dokumentu:
Izlaz
Izlaz je vratio poruku o uspjehu.
Da biste provjerili učinjene promjene, dohvatite zahvaćeni dokument koristeći ovaj ' pronaći() ” naredba:
db.Linuxhint_Col2.find ( { 'Naziv_modela.Prezime' : 'Depp' } ) Izlaz
Izlaz je potvrdio da je dokument uspješno ažuriran.
Primjer 2: Dodajte novo polje pomoću metode “db.collection.updateOne()”
' db.collection.updateOne() ' dodaje novo polje koristeći ' $set ” u dokumentu ako već ne postoji. kao ' Iskustvo ' polje ne postoji za dokumente u kojima je ' Naknada za modeliranje ” je manje od „ 9000 ”.
Dodajmo novo polje ' Iskustvo ' sa vrijednošću ' Početnik ' u dokumentu gdje je ' Naknada za modeliranje ” je manje od „ 9000 ” pomoću ovog upita:
db.Linuxhint_Col2.updateOne ( { 'Naknada za modeliranje' : { $lt : 9000 } } , { $set : { 'Iskustvo' : 'Početnik' } } ) Izlaz
Izlaz vraća poruku koja pokazuje da jedan dokument odgovara kriterijima odabira i da je uspješno izmijenjen.
Dopustite da to potvrdimo preuzimanjem svih dokumenata dostupnih u zbirci “ Linuxhint_Col2 ”:
db.Linuxhint_Col2.find ( ) Izlaz
Izlaz pokazuje da je jedan dokument koji ispunjava uvjet izmijenjen, a novo polje je uspješno umetnuto.
Primjer 3: Ažuriranje više polja dokumenta pomoću metode “db.collection.updateOne()”
Korisnik čak može mijenjati više polja u jednom dokumentu. Ovdje će ovaj upit naveden u nastavku promijeniti prezime i dob za dokument gdje je ' Ime 'jednako' Noa “:
Izlaz
Upit je izvršen bez greške.
Za provjeru promjena upotrijebite metodu “find()” za dohvaćanje dokumenta gdje je “ Ime 'jednako' Noa :
db.Linuxhint_Col2.find ( { 'Naziv_modela. Ime' : 'Noa' } ) Izlaz
Izlaz je uspješno vratio izmijenjeni dokument.
Primjer 4: Koristite metodu “db.collection.updateOne()” s operatorima ažuriranja
Kao i u prethodnom primjeru, koristili smo ' $set ” ažuriranje operatora za izmjenu vrijednosti u “ db.collection.updateOne() ” metoda. Pokušajmo upotrijebiti drugi operator ažuriranja “ $inc ” koja povećava polje s navedenim iznosom.
Ovdje u upitu navedenom u nastavku, metoda traži dokument u kojem je ' Ime 'jednako' Kate ” i dodaje „ 1000 ' u ' Naknada za modeliranje ” vrijednost polja:
db.Linuxhint_Col2.updateOne ( { 'Naziv_modela. Ime' : 'Kate' } , { $inc : { Naknada za modeliranje: 1000 } } ) Izlaz
Izlaz je vratio poruku o uspjehu.
Da biste vidjeli promjene, koristite ' pronaći() ” metoda za dohvaćanje zahvaćenog dokumenta:
db.Linuxhint_Col2.find ( { 'Naziv_modela. Ime' : 'Kate' } ) Izlaz
Izlaz prikazuje modificiranu vrijednost ' Naknada za modeliranje ”.
Primjer 5: Dodajte novi dokument ako već ne postoji koristeći argument 'upsert'
Neobavezni argument može se koristiti za promjenu ponašanja ove metode. Jedna takva opcija je ' upsert ” koji dodaje novi dokument ako nijedan već postojeći dokument ne zadovoljava kriterije odabira definirane u upitu.
Pokušajmo dodati novi dokument definiranjem kriterija odabira koji ne zadovoljavaju niti jedan već postojeći dokument. Nakon toga postavite neka polja za njega i dodajte opciju ' upsert ” kao “true” kao što je prikazano u naredbi u nastavku:
db.Linuxhint_Col2.updateOne ( { 'Naziv_modela. Ime' : 'David' } , { $set : { Naknada za modeliranje: 10000 , Model_Age: 23 , 'Naziv_modela.Prezime' : 'Smith' } } , { upsert: pravi } ) Izlaz
Izlaz je pokazao da je potvrđena poruka istinita.
Na kraju, potvrdite njegovu izmjenu pokretanjem ove naredbe:
db.Linuxhint_Col2.find ( { 'Naziv_modela. Ime' : 'David' } ) Izlaz
Ispis je pokazao da je novi dokument uspješno dodan.
Zaključak
' db.collection.updateOne() ” metoda u MongoDB-u koristi se za ažuriranje prvog dokumenta koji zadovoljava kriterije odabira. Može mijenjati jedno ili više polja u dokumentu pomoću operatora ažuriranja, kao što je ' $set ' i ' $inc ”. Štoviše, ova metoda također prihvaća neobavezne argumente za promjenu ponašanja metode, kao što je ' upsert ” koji dodaje novi dokument u slučaju da kriteriji odabira ne odgovaraju nijednom postojećem dokumentu. Ovaj post raspravljao je o korištenju ' db.collection.updateOne() ” metoda u MongoDB-u.