Úprava dat
Často potřebujeme upravit již existující záznam. V jazyce SQL k tomu existuje příkaz UPDATE
, MongoDB můžeme využít funkce update_one()
nebo update_many()
.
Úprava jednoho záznamu
Při úpravách záznamů musíme vždy specifikovat, který záznam chceme upravit. Záznam, který chceme upravit, opět vybereme pomocí dotazu. Jednomu dotazu může vyhovovat více dokumentů. funkce update_one()
však upraví pouze první vyhovující záznam, na který narazí. Úpravu hodnot specifikujeme jako slovník, do něhož vložíme dvojice klíče-hodnota stejně, jako když jsme vytvářeli nový záznam, např. takto: { "Poznámka": "Odečtena vrácená záloha za lahve." }
. Podobně jako u dotazů pak použijeme operátor, který bude tvořit nadřazený slovník. Tentokrát použijeme operátor $set
. Výsledný slovník pro úpravu dokumentu tedy vypadá takto: { "$set": { "Poznámka": "Odečtena vrácená záloha za lahve." } }
.
Níže vidíš sestavení obou slovníků a volání funkce update_one()
.
dotaz = { "Věc": "Pivo" }
noveHodnoty = { "$set": { "Poznámka": "Odečtena vrácená záloha za lahve." } }
kolekce.update_one(dotaz, noveHodnoty)
Úprava více záznamů
Pokud našemu dotazu vyhovuje více dotazů a my chceme upravit všechny, použijeme funkci update_many()
. Zadání pro ni připravíme stejně, tj. vytvoříme jeden slovník pro dotaz a další slovník jako popis toho, co má funkce upravit. Například víme, že Petr notoricky zapomíná na dodání účtenky, tak k jeho nákupům přidáme připomenutí.
dotaz = { "Jméno": "Petr" }
noveHodnoty = { "$set": { "Poznámka": "Chybí účtenka." } }
kolekce.update_many(dotaz, noveHodnoty)