Kódím.cz
3

Vkládání a mazání dat

Vkládání a mazání dat v Mongo DB

Vkládání dat

Vložení jednoho záznamu

Pojďme tento nákup zapsat do naší databáze. V jazyce SQL obvykle používáme příkaz INSERT. Názvem příkazu je inspirován i název funkce, kterou budeme používat my.

Ještě malá poznámka ke struktuře. Každá databázový server může obsahovat několik databází (např. máme různé databáze pro různé zákazníky, programy, oddělení atd.). V MongoDB se každá databáze skládá z kolekcí (v relačních databázích se skládá z tabulek) a každá kolekce se skládá z dokumentů (v relačních databázích se tabulka skládá z řádků). Chceme-li něco ukládat, musíme nejprve vytvořit nebo zvolit databázi a kolekci, aby MongoDB vědělo, kam dokument vložit.

K připojení k databázi použijeme modul pymongo, který je potřeba importovat příkazem import. Následně musíme zadat adresu serveru, uživatelské jméno a heslo. Tyto informace zjistíš během kurzu. Po přihlášení vytvoříme klienta, který bude prostředníkem mezi námi a MongoDB serverem. Následně vybereme konkrétní databázi a kolekci.

import pymongo
nakup = {
    "Jméno": "Petr",
    "Věc": "Prací prášek",
    "Částka v korunách": 399,
    "Datum": "2020-03-04",
    "Značka": "Persil",
    "Hmotnost": 7.8
}

kolekce = databaze["nakupy"]
id = kolekce.insert_one(nakup)
print(id.inserted_id)

Ke vložení dokumentu do kolekce použijeme funkce insert_one(), která slouží ke vložení jednoho dokumentu. Funkce vrací hodnotu id, což je jednoznačný identifikátor našeho záznamu. Samotné ID nám toho moc neřekne, jeho hodnota je například 5fda6f16e6aeccec0ef40b87.

Vložení více záznamů

Nyní zkusme vložit více záznamů najednou. Zbývající nákupy máme v proměnné, která se jmenuje zbyvajici_nakupy. Tato proměnná obsahuje seznam, což poznáme podle hranatých závorek na začátku a na konci. Seznam se skládá ze slovníků, které mají různé klíče podle toho, co kdo považoval za důležité.

zbyvajici_nakupy = [
    {
        "Jméno": "Petr",
        "Věc": "Toaletní papír",
        "Částka v korunách": 35,
        "Počet rolí": 3
    },
    {
        "Jméno": "Libor",
        "Věc": "Jahodová marmeláda",
        "Částka v korunách": 50,
        "Datum": "2020-03-15"
    },
    {
        "Jméno": "Petr",
        "Věc": "Pytel na odpadky",
        "Částka v korunách": 90,
        "Objem pytle": 15
    },
    {
        "Jméno": "Míša",
        "Věc": "Fólie na potraviny",
        "Částka v korunách": 30,
        "Datum": "2020-03-25"
    },
    {
        "Jméno": "Míša",
        "Věc": "Paralen",
        "Částka v korunách": 130
    },
    {
        "Jméno": "Gumové rukavice",
        "Věc": "Savo",
        "Částka v korunách": 200,
    }
]

kolekce.insert_many(zbyvajici_nakupy)

Více záznamů vložíme pomocí funkce insert_many(), které předáme náš seznam.