Úprava dat

Úprava existujících dat v Mongo DB

Ú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)