MongoDB Update() dokument koos näitega
\
⚡ Nutikas kokkuvõte
MongoDB Update() Dokumenditoimingud muudavad kollektsioonis olemasolevaid kirjeid. Meetod update() võtab tingimuse dokumentide valimiseks ja modifikaatori, näiteks $set, väljaväärtuste muutmiseks ning mitmikvalik uuendab korraga mitut vastavat dokumenti.

Põhidokumentide uuendused
MongoDB pakub kogu dokumentide värskendamiseks käsku update(). Ainult värskendatavate dokumentide värskendamiseks saate värskendusavaldusele lisada kriteeriumid, nii et värskendatakse ainult valitud dokumente.
Käsu põhiparameetrid on tingimus, mille jaoks dokumenti tuleb värskendada, ja järgmine on muudatus, mida tuleb teha.
Järgmine näide näitab, kuidas seda teha.
Step 1) Andke värskenduskäsk välja
Step 2) Valige tingimus, mida soovite kasutada, et otsustada, millist dokumenti on vaja värskendada. Meie näites soovime värskendada dokumenti, mille töötaja ID on 22.
Step 3) Kasutage välja nime muutmiseks käsku set
Step 4) Valige, millist välja nime soovite muuta, ja sisestage vastavalt uus väärtus.
db.Employee.update( {"Employeeid" : 1}, {$set: { "EmployeeName" : "NewMartin"}});
Kui käsk on edukalt täidetud, kuvatakse järgmine väljund
Väljund:
Väljund näitab selgelt, et üks kirje vastas tingimusele ja seega muudeti vastavat välja väärtust.
MongoDB Värskendused Operatorse
$set operaator on kõige levinum viis välja muutmiseks, aga MongoDB pakub erinevate vajaduste jaoks mitmeid uuendamise operaatoreid. Need paigutatakse update() teise argumenti $set kõrvale või asemele:
- $komplekt: Määrab välja väärtuse ja loob välja, kui seda pole olemas.
- $unset: Eemaldab dokumendist välja täielikult.
- $kaasa arvatud: Suurendab või vähendab numbrilist välja antud koguse võrra.
- $mul: Korrutab numbrilise välja väärtuse.
- $ümbernimetamine: Nimetab välja ümber.
- $tõukamine: Lisab massiiviväljale väärtuse.
- $tõmba: Eemaldab massiiviväljalt vastavad väärtused.
Iga operaator on suunatud ainult nimetatud väljadele, jättes ülejäänud dokumendi muutmata. Mitme välja korraga muutmiseks saate ühe update() kutsungiga kombineerida mitu operaatorit, mis hoiab värskendused täpsed ja väldib soovitud andmete ülekirjutamist.
Mitme väärtuse värskendamine
Tagamaks, et mitut/hulgidokumenti värskendataks samaaegselt MongoDB peate kasutama multivalikut, sest muidu muudetakse vaikimisi korraga ainult ühte dokumenti.
Järgmine näide näitab, kuidas värskendada paljusid dokumente.
Selles näites leiame esmalt dokumendi, mille töötaja ID on "1", ja muudame töötaja nime "Martin" asemel "NewMartin".
Step 1) Andke värskenduskäsk välja
Step 2) Valige tingimus, mida soovite kasutada, et otsustada, millist dokumenti on vaja värskendada. Meie näites soovime, et dokumenti, mille töötaja ID on "1", värskendataks.
Step 3) Valige, milliseid väljanimesid soovite muuta, ja sisestage vastavalt nende uus väärtus.
db.Employee.update ( { Employeeid : 1 }, { $set : { "EmployeeName" : "NewMartin", "Employeeid" : 22 } } )
Kui käsk on edukalt täidetud ja kui käivitate "leida" käsk, et otsida dokumenti, mille töötaja ID on 22, kuvatakse järgmine väljund
Väljund:
Väljund näitab selgelt, et üks kirje vastas tingimusele ja seega muudeti vastavat välja väärtust.
Kuidas dokumenti üles laadida MongoDB
Upsert on uuendamise ja sisestamise kombinatsioon. Kui te selle lubate, MongoDB uuendab tingimusele vastavat dokumenti või lisab uue dokumendi, kui vastet ei leita. See on kasulik, kui te pole kindel, kas kirje on juba olemas.
Upserti tegemiseks lisage upserti valik, mis on seatud väärtusele true, funktsiooni update() kolmanda argumendina:
db.Employee.update( {Employeeid: 5}, {$set: {EmployeeName: "Sofia"}}, {upsert: true} )
Siin on see, mis juhtub:
- Kui töötaja ID-ga 5 dokument on olemas, MongoDB uuendab oma EmployeeName välja.
- Kui sellist dokumenti ei ole olemas, MongoDB lisab uue dokumendi, mille töötaja ID on 5 ja töötajaNimi on „Sofia ".
Upsertid on käepärased loendurite, sätete ja mis tahes töövoo jaoks, kus soovite esmakordsel kasutamisel kirje luua ja seda hiljem uuendada. Tänapäevases MongoDB, sama käitumine on saadaval ka funktsioonide updateOne() ja updateMany() kaudu, edastades valikutes {upsert: true}. Olge tingimusega ettevaatlik, sest lai filter koos funktsiooniga upsert võib luua ootamatuid dokumente.
uuendaÜks() vs uuendaMany() vs asendaÜks()
Meetod update() on nüüd pärandkäsk. Moodne MongoDB Juhid jagavad selle käitumise kolmeks selgemaks meetodiks. Allolev tabel võrdleb neid:
| Meetod | Mida see teeb | Mõjutatud dokumendid |
|---|---|---|
| updateOne() | Rakendab esimesele sobivale dokumendile värskendusoperaatoreid | Üks |
| updateMany() | Rakendab värskendusoperaatoreid igale sobivale dokumendile | Palju |
| asendaÜks() | Asendab kogu esimese sobiva dokumendi uuega | Üks |
Ühe sihitud muudatuse korral kasuta funktsiooni updateOne(), vana mitme valiku asemel funktsiooni updateMany() ja kui soovid väljade muutmise asemel terve dokumendi välja vahetada, siis funktsiooni replaceOne(). Need meetodid tagastavad selge tulemuse, mis näitab, mitu dokumenti sobisid ja kui palju muudeti, mis muudab need turvalisemaks ja silumise lihtsamaks kui funktsiooni update().


