Co je to MongoDB? Úvod, Architecture, Features & Example

Co je to MongoDB?

MongoDB je dokumentově orientovaná NoSQL databáze používaná pro ukládání velkých objemů dat. Namísto použití tabulek a řádků jako v tradičních relačních databázích, MongoDB využívá sbírky a dokumenty. Dokumenty se skládají z párů klíč-hodnota, které jsou základní jednotkou dat MongoDB. Kolekce obsahují sady dokumentů a funkcí, které jsou ekvivalentem tabulek relační databáze. MongoDB je databáze, která se objevila kolem poloviny roku 2000.

MongoDB Funkce

  1. Každá databáze obsahuje sbírky, které zase obsahují dokumenty. Každý dokument se může lišit s různým počtem polí. Velikost a obsah každého dokumentu se mohou navzájem lišit.
  2. Struktura dokumentu je více v souladu s tím, jak vývojáři konstruují své třídy a objekty v příslušných programovacích jazycích. Vývojáři často říkají, že jejich třídy nejsou řádky a sloupce, ale mají jasnou strukturu s páry klíč-hodnota.
  3. Řádky (nebo dokumenty, jak jsou volány MongoDB) nemusí mít předem definované schéma. Místo toho lze pole vytvářet za chodu.
  4. Datový model dostupný v rámci MongoDB umožňuje snadněji reprezentovat hierarchické vztahy, ukládat pole a další složitější struktury.
  5. Škálovatelnost – The MongoDB prostředí jsou velmi škálovatelná. Společnosti po celém světě definovaly klastry, přičemž některé z nich provozovaly více než 100 uzlů s přibližně miliony dokumentů v databázi.

MongoDB Příklad

Níže uvedený příklad ukazuje, jak lze dokument modelovat MongoDB.

  1. Pole _id je přidáno uživatelem MongoDB k jednoznačné identifikaci dokumentu ve sbírce.
  2. Můžete si všimnout, že data objednávky (ID objednávky, produkt a množství), která budou v RDBMS normálně uložena v samostatné tabulce, zatímco v MongoDB ve skutečnosti je uložen jako vložený dokument v samotné sbírce. To je jeden z klíčových rozdílů v tom, jak jsou data modelována MongoDB.

MongoDB Příklad

Klíčové součásti MongoDB Architecture

Níže je uvedeno několik běžných termínů používaných v MongoDB

  1. _id – Toto pole je povinné v každém MongoDB dokument. Pole _id představuje jedinečnou hodnotu v MongoDB dokument. Pole _id je jako primární klíč dokumentu. Pokud vytvoříte nový dokument bez pole _id, MongoDB automaticky vytvoří pole. Pokud tedy například uvidíme příklad výše uvedené tabulky zákazníků, Mongo DB přidá 24místný jedinečný identifikátor ke každému dokumentu v kolekci.
_Id Zákaznické identifikační číslo Jméno zákazníka Číslo objednávky
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Sbírka – Toto je seskupení MongoDB dokumenty. Kolekce je ekvivalentem tabulky, která je vytvořena v jakémkoli jiném RDMS, jako je např Oracle nebo MS SQL. Kolekce existuje v rámci jedné databáze. Jak je vidět z úvodu, kolekce nevynucují žádnou strukturu.
  2. Kurzor – Toto je ukazatel na sadu výsledků dotazu. Klienti mohou iterovat kurzorem a načítat výsledky.
  3. Databáze – Toto je kontejner pro kolekce jako v RDMS, kde se jedná o kontejner pro tabulky. Každá databáze získá svou vlastní sadu souborů v systému souborů. A MongoDB server může ukládat více databází.
  4. Dokument – Záznam v a MongoDB sbírka se v podstatě nazývá dokument. Dokument se bude skládat z názvu pole a hodnot.
  5. Pole – Pár název-hodnota v dokumentu. Dokument má nula nebo více polí. Pole jsou analogická sloupcům v relačních databázích. Následující diagram ukazuje příklad Pole s páry klíč hodnota. Takže v níže uvedeném příkladu CustomerID a 11 je jeden z párů klíč-hodnota definovaných v dokumentu.

Klíčové součásti MongoDB Architecture

  1. JSON – Toto je známé jako JavaScénář Zápis objektů. Jedná se o lidsky čitelný formát prostého textu pro vyjádření strukturovaných dat. JSON je v současné době podporován v mnoha programovacích jazycích.

Jen krátká poznámka ke klíčovému rozdílu mezi polem _id a normálním polem kolekce. Pole _id se používá k jedinečné identifikaci dokumentů v kolekci a automaticky je přidává MongoDB když je sbírka vytvořena.

Proč používat MongoDB?

Níže je uvedeno několik důvodů, proč byste měli začít používat MongoDB

  1. Orientace na dokumenty – Od MongoDB je NoSQL typ databáze, místo aby měla data ve formátu relačního typu, ukládá data do dokumentů. To dělá MongoDB velmi flexibilní a adaptabilní na reálnou situaci a požadavky obchodního světa.
  2. Ad hoc dotazy – MongoDB podporuje vyhledávání podle polí, rozsahových dotazů a vyhledávání regulárních výrazů. Je možné zadávat dotazy na vrácení konkrétních polí v dokumentech.
  3. Indexování – Indexy lze vytvářet pro zlepšení výkonu vyhledávání v rámci MongoDB. Jakékoli pole v a MongoDB dokument lze indexovat.
  4. replikace – MongoDB může zajistit vysokou dostupnost se sadami replik. Sada replik se skládá ze dvou nebo více instancí mongo DB. Každý člen sady replik může kdykoli vystupovat v roli primární nebo sekundární repliky. Primární replika je hlavní server, který komunikuje s klientem a provádí všechny operace čtení/zápisu. Sekundární repliky udržují kopii dat primární pomocí vestavěné replikace. Když primární replika selže, sada replik se automaticky přepne na sekundární a poté se stane primárním serverem.
  5. Vyrovnávání zátěže - MongoDB používá koncept sharding pro horizontální škálování rozdělením dat na více MongoDB příklady. MongoDB může běžet na více serverech, vyvažovat zátěž a/nebo duplikovat data, aby byl systém v provozu i v případě selhání hardwaru.

Datové modelování v MongoDB

Jak jsme viděli v sekci Úvod, data v MongoDB má flexibilní schéma. Na rozdíl od in SQL databáze, kde musíte mít před vložením dat deklarováno schéma tabulky, MongoDBkolekce nevynucují strukturu dokumentu. Tento druh flexibility je to, co dělá MongoDB tak silný.

Při modelování dat v Mongo mějte na paměti následující věci

  1. Jaké jsou potřeby aplikace – Podívejte se na obchodní potřeby aplikace a zjistěte, jaká data a typ dat aplikace potřebuje. Na základě toho zajistěte, aby se podle toho rozhodlo o struktuře dokumentu.
  2. Co jsou vzory načítání dat – Pokud předpokládáte velké využití dotazů, zvažte použití indexů ve vašem datovém modelu ke zlepšení efektivity dotazů.
  3. Probíhají v databázi časté vkládání, aktualizace a odstraňování? Přehodnoťte použití indexů nebo v případě potřeby zahrňte sharding do návrhu datového modelování, abyste zlepšili efektivitu svého celkového MongoDB prostředí.

Rozdíl mezi MongoDB & RDBMS

Níže jsou uvedeny některé z klíčových rozdílů mezi pojmy MongoDB a RDBMS

RDBMS MongoDB Rozdíl
Tabulka Sbírka In RDBMS, tabulka obsahuje sloupce a řádky, které se používají k ukládání dat, zatímco v MongoDB, stejná struktura je známá jako kolekce. Kolekce obsahuje dokumenty, které zase obsahují pole, která jsou zase páry klíč-hodnota.
Řádek Dokument V RDBMS řádek představuje jednu implicitně strukturovanou datovou položku v tabulce. v MongoDB, data jsou uložena v dokumentech.
Sloupec Pole V RDBMS sloupec označuje sadu hodnot dat. Tyto v MongoDB jsou známé jako Fields.
Připojuje Vložené dokumenty V RDBMS jsou data někdy rozložena do různých tabulek a za účelem zobrazení úplného pohledu na všechna data se někdy vytvoří spojení napříč tabulkami, aby se data získala. v MongoDB, data jsou normálně uložena v jedné kolekci, ale oddělena pomocí vložených dokumentů. Neexistuje tedy žádný koncept spojení MongoDB.

Kromě rozdílů v termínech je níže uvedeno několik dalších rozdílů

  1. Relační databáze jsou známé tím, že vynucují integritu dat. Toto není výslovný požadavek v MongoDB.
  2. RDBMS vyžaduje, aby data byla normalizovaná za prvé, aby bylo možné zabránit osiřelým záznamům a duplicitám Normalizace dat pak vyžaduje více tabulek, což bude mít za následek více spojení tabulek, což vyžaduje více klíčů a indexů. Jak databáze začnou růst, výkon se může začít stávat problémem. Opět se nejedná o výslovný požadavek MongoDB. MongoDB je flexibilní a nepotřebuje data nejprve normalizovat.