Většina softwarových aplikací v současnosti zahrnuje nějaké dynamické ukládání dat pro rozsáhlé budoucí reference v samotné aplikaci. Všichni víme, že data jsou uložena v databázi, která spadá do dvou kategorií:relační a nerelační DBMS.
Váš výběr z těchto dvou bude plně záviset na vaší datové struktuře, množství použitých dat, výkonu databáze a škálovatelnosti.
Relační DBMS ukládají data do tabulek ve formě řádků, takže používají strukturovaný dotazovací jazyk (SQL), což z nich činí dobrou volbu pro aplikace zahrnující několik transakcí. Patří mezi ně MySQL, SQLite a PostgreSQL.
Na druhou stranu, NoSQL DBMS, jako je MongoDB, jsou orientované na dokumenty, takže data jsou uložena ve sbírkách z hlediska dokumentů. To poskytuje větší úložnou kapacitu pro velký soubor dat, a tedy další výhodu v škálovatelnosti.
V tomto blogu předpokládáme, že máte lepší znalosti o MongoDB nebo MySQL, a proto byste rádi znali korelaci mezi nimi, pokud jde o dotazování a strukturu databáze.
Níže je uveden cheat, abyste se dále seznámili s dotazováním MySQL na MongoDB.
MySQL do MongoDB Cheat Sheet – podmínky
Podmínky MySQL | Podmínky MongoDB | Vysvětlení |
---|---|---|
Tabulka | Kolekce | Toto je úložný kontejner pro data, která mají tendenci být podobná v obsažených objektech. |
Řádek | Dokument | Definuje entitu jednoho objektu v tabulce pro MySQL a kolekci v případě MongoDB. |
Sloupec | Pole | Každá uložená položka má vlastnosti, které jsou definovány různými hodnotami a datovými typy. V MongoDB mohou mít dokumenty ve stejné kolekci různá pole. V MySQL musí být každý řádek definován se stejnými sloupci jako ty stávající. |
Primární klíč | Primární klíč | Každý uložený objekt je identifikován jedinečnou hodnotou pole. V případě MongoDB máme pole _id nastaveno automaticky, zatímco v MySQL si můžete definovat svůj vlastní primární klíč, který je přírůstkový, když vytváříte nové řádky. |
Spojení tabulek | Vkládání a propojování dokumentů | Propojení spojené s objektem v jiné kolekci/tabulce k datům v jiné kolekci/tabulce. |
kde | $match | Výběr dat, která odpovídají kritériím. |
skupina | $group | Seskupení dat podle určitých kritérií. |
drop | $unset | Odebrání sloupce/pole z řádku/dokumentu/ |
set | $set | Nastavení hodnoty existujícího sloupce/pole na novou hodnotu. |
Příkazy schématu
Příkazy tabulky MySQL | Výkazy shromažďování MongoDB | Vysvětlení |
---|---|---|
Databáze a tabulky jsou vytvořeny explicitně prostřednictvím panelu PHP admin nebo definovány ve skriptu, tj. Vytvoření databáze Vytvoření tabulky | Databáze může být vytvořena implicitně nebo explicitně. Implicitně během prvního vložení dokumentu se vytvoří databáze a kolekce a také se do tohoto dokumentu přidá automatické pole _id. Databázi můžete také vytvořit explicitně spuštěním tohoto komentáře v Mongo Shell | V MySQL musíte zadat sloupce v tabulce, kterou vytváříte, a také nastavit některá ověřovací pravidla, jako je v tomto příkladu typ dat a délka, která jdou do konkrétního sloupce. V případě MongoDB není nutné definovat ani pole, která by měl každý dokument obsahovat, ani pravidla ověřování, která by měla specifikovaná pole obsahovat. Nicméně v MongoDB pro integritu a konzistenci dat můžete nastavit pravidla ověření pomocí JSON SCHEMA VALIDATOR |
Upuštění stolu | | Toto jsou příkazy pro smazání tabulky pro MySQL a kolekci v případě MongoDB. |
Přidání nového sloupce s názvem join_date Odstranění sloupce join_date, pokud je již definován | Přidání nového pole s názvem join_date Tím se aktualizují všechny dokumenty ve sbírce tak, aby datum spojení mělo aktuální datum. Odstranění pole join_date, pokud již bylo definováno Tím se pole join_date odstraní ze všech dokumentů sbírky. | Změna struktury schématu přidáním nebo vypuštěním sloupce/pole. Vzhledem k tomu, že architektura MongoDB striktně nevynucuje strukturu dokumentu, dokumenty mohou mít pole navzájem odlišná. |
Vytvoření indexu se sloupcem UserId vzestupně a Věk sestupně | Vytvoření indexu zahrnujícího pole UserId a Age. | Indexy jsou obecně vytvářeny pro usnadnění procesu dotazování. |
| | Vkládání nových záznamů. |
| | Smazání záznamů z tabulky/sbírky, jejichž věk je roven 25. |
| | Smazání všech záznamů z tabulky/kolekce. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů se všemi sloupci/polemi. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů se sloupci/polemi Věk, Pohlaví a primární klíč. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů se sloupci/polemi Věk a Pohlaví. Primární klíč je vynechán. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Gender je nastavena na M. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů pouze s hodnotou Pohlaví, ale jejichž hodnota Věk je rovna 25. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Pohlaví je nastavena na F a Věk je 25. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Age není rovna 25. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Pohlaví je nastavena na F nebo Věk je 25. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Age je větší než 25. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Age je menší nebo rovna 25. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Name má náhodou písmena He. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Gender je nastavena na F, a seřadí tento výsledek ve vzestupném pořadí sloupce id v případě MySQL a času vloženého v případě MongoDB. |
| | Vrátí všechny záznamy z tabulky/kolekce uživatelů, jejichž hodnota Gender je nastavena na F, a seřadí tento výsledek v sestupném pořadí sloupce id v případě MySQL a času vloženého v případě MongoDB. |
| nebo | Spočítá všechny záznamy v tabulce/sbírce uživatelů. |
| nebo | Spočítá všechny záznamy v tabulce/kolekci uživatelů, které náhodou mají hodnotu pro vlastnost Name. |
| nebo | Vrátí první záznam v tabulce/kolekci uživatelů. |
| | Vrátí první záznam v tabulce/sbírce uživatelů, který má hodnotu Gender rovnou F. |
| | Vrátí pět záznamů v tabulce/kolekci uživatelů po přeskočení prvních pěti záznamů. |
| | Tím se nastaví věk všech záznamů v tabulce/sbírce uživatelů, kteří mají věk vyšší než 25 až 26. |
| | Tím se zvýší stáří všech záznamů v tabulce/kolekci uživatelů o 1. |
| | Tím se sníží stáří prvního záznamu v tabulce/sbírce uživatelů o 1. |
Chcete-li spravovat MySQL a/nebo MongoDB centrálně a z jednoho místa, navštivte:https://severalnines.com/product/clustercontrol.