Co je MongoDB? Úvod, architektura, funkce & Příklad

Obsah:

Anonim

Co je MongoDB?

MongoDB je dokumentově orientovaná databáze NoSQL používaná pro velkoobjemové ukládání dat. Namísto použití tabulek a řádků jako v tradičních relačních databázích využívá MongoDB kolekce a dokumenty. Dokumenty se skládají z párů klíč – hodnota, které jsou základní jednotkou dat v MongoDB. Kolekce obsahují sady dokumentů a funkce, která je ekvivalentem tabulek relační databáze. MongoDB je databáze, která vyšla na světlo kolem poloviny dvacátých let.

V tomto výukovém programu se naučíte

  • Funkce MongoDB
  • Příklad MongoDB
  • Klíčové součásti architektury MongoDB
  • Proč používat MongoDB
  • Modelování dat v MongoDB
  • Rozdíl mezi MongoDB a RDBMS

Funkce MongoDB

    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 vytvářejí 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 nazývané v MongoDB) nemusí mít předem definované schéma. Místo toho mohou být pole vytvářena za běhu.
    4. Datový model dostupný v MongoDB umožňuje snadněji reprezentovat hierarchické vztahy, ukládat pole a další složitější struktury.
  1. Škálovatelnost - Prostředí MongoDB 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

Příklad MongoDB

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

  1. Pole _id přidává MongoDB k jedinečné identifikaci dokumentu v kolekci.
  2. Můžete si všimnout, že data objednávky (OrderID, Product a Quantity), která jsou v RDBMS obvykle uložena v samostatné tabulce, zatímco v MongoDB jsou ve skutečnosti uložena jako vložený dokument v samotné kolekci. Toto je jeden z klíčových rozdílů ve způsobu modelování dat v MongoDB.

Klíčové součásti architektury MongoDB

Níže uvádíme několik běžných výrazů používaných v MongoDB

  1. _id - Toto je pole vyžadované v každém dokumentu MongoDB. Pole _id představuje jedinečnou hodnotu v dokumentu MongoDB. Pole _id je jako primární klíč dokumentu. Pokud vytvoříte nový dokument bez pole _id, MongoDB pole automaticky vytvoří. Například pokud vidíme příklad výše uvedené zákaznické tabulky, přidá Mongo DB každému dokumentu v kolekci 24místný jedinečný identifikátor.
_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í dokumentů MongoDB. Kolekce je ekvivalentem tabulky, která je vytvořena v jakémkoli jiném RDMS, jako je Oracle nebo MS SQL. Kolekce existuje v jedné databázi. Jak je vidět z úvodu, sbírky nevynucují žádný druh struktury.
  2. Kurzor - Toto je ukazatel na výsledkovou sadu dotazu. Klienti mohou procházet kurzorem a načítat výsledky.
  3. Databáze - Toto je kontejner pro sbírky jako v RDMS, kde se jedná o kontejner pro tabulky. Každá databáze získá svou vlastní sadu souborů v systému souborů. Server MongoDB může ukládat více databází.
  4. Dokument - Záznam v kolekci MongoDB se v zásadě nazývá dokument. Dokument bude zase sestávat z názvu pole a hodnot.
  5. Pole - pár název-hodnota v dokumentu. Dokument obsahuje nula nebo více polí. Pole jsou analogická se sloupci v relačních databázích.

    Následující diagram ukazuje příklad polí s páry klíč-hodnota. V příkladu níže je tedy CustomerID a 11 jedním z párů klíčových hodnot definovaných v dokumentu.

  1. JSON - Toto se označuje jako JavaScript Object Notation. Toto je formát čitelný pro člověka, prostý text 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 o klíčovém rozdílu mezi polem _id a polem normální kolekce. Pole _id se používá k jedinečné identifikaci dokumentů v kolekci a je automaticky přidáno MongoDB při vytvoření kolekce.

Proč používat MongoDB?

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

  1. Orientováno na dokumenty - Protože MongoDB je databáze typu NoSQL, místo dat ve formátu relačního typu ukládá data do dokumentů. Díky tomu je MongoDB velmi flexibilní a přizpůsobitelný reálné situaci a požadavkům světového obchodu.
  2. Ad hoc dotazy - MongoDB podporuje vyhledávání podle polí, dotazů na rozsah a vyhledávání regulárních výrazů. Lze provést dotazy k vrácení konkrétních polí v dokumentech.
  3. Indexování - indexy lze vytvářet za účelem zlepšení výkonu vyhledávání v rámci MongoDB. Libovolné pole v dokumentu MongoDB lze indexovat.
  4. Replikace - MongoDB může poskytnout vysokou dostupnost s replikami. Sada replik se skládá ze dvou nebo více instancí databáze Mongo. Každý člen sady replik může kdykoli působit 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í a zápisu. Sekundární repliky udržují kopii dat primární pomocí integrované replikace. Když selže primární replika, sada replik se automaticky přepne na sekundární a poté se stane primárním serverem.
  5. Vyrovnávání zatížení - MongoDB používá koncept horizontálního horizontálního horizontálního měřítka rozdělením dat mezi více instancí MongoDB. MongoDB může běžet na více serverech, vyvažovat zátěž a / nebo duplikovat data, aby udržel systém v provozu v případě selhání hardwaru.

Modelování dat v MongoDB

Jak jsme viděli v části Úvod, data v MongoDB mají flexibilní schéma. Na rozdíl od databází SQL, kde musíte mít před vložením dat deklarované schéma tabulky, kolekce MongoDB nevynucují strukturu dokumentu. Díky tomuto druhu flexibility je MongoDB tak silný.

Při modelování dat v Mongu 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 podívejte se, jaké údaje a typ dat jsou pro aplikaci potřebné. Na základě toho zajistěte, aby byla odpovídajícím způsobem rozhodnuta struktura dokumentu.
  2. Co jsou vzory načítání dat - Pokud předvídáte velké využití dotazů, zvažte použití indexů ve vašem datovém modelu ke zlepšení efektivity dotazů.
  3. Dochází v databázi k častým vkládáním, aktualizacím a odebírání? Znovu zvažte použití indexů nebo v případě potřeby zahrňte dělení do návrhu datového modelování, abyste zlepšili účinnost svého celkového prostředí MongoDB.

Rozdíl mezi MongoDB a RDBMS

Níže uvádíme některé klíčové výrazové rozdíly mezi MongoDB a RDBMS

RDBMS MongoDB Rozdíl
Stůl Sbírka V RDBMS obsahuje tabulka sloupce a řádky, které se používají k ukládání dat, zatímco v MongoDB je tato stejná struktura známá jako kolekce. Sbírka obsahuje dokumenty, které zase obsahují Fields, což jsou páry klíč – hodnota.
Řádek Dokument V RDBMS řádek představuje jednu implicitně strukturovanou datovou položku v tabulce. V MongoDB jsou data uložena v dokumentech.
Sloupec Pole V RDBMS sloupec označuje sadu datových hodnot. Tito v MongoDB jsou známí jako Fields.
Připojí Vložené dokumenty V RDBMS se data někdy šíří napříč různými tabulkami a za účelem zobrazení úplného zobrazení všech dat se někdy v tabulkách vytvoří spojení, aby se data získala. V MongoDB jsou data obvykle uložena v jedné kolekci, ale oddělena pomocí vložených dokumentů. V MongoDB tedy neexistuje žádný koncept spojení.

Kromě výrazů rozdíly je níže uvedeno několik dalších rozdílů

  1. Relační databáze jsou známé pro vynucování integrity dat. Toto není v MongoDB výslovný požadavek.
  2. RDBMS vyžaduje, aby byla data nejprve normalizována, aby mohla zabránit osiřelým záznamům a duplikátům. Normalizace dat má potom požadavek na více tabulek, což bude mít za následek více spojení tabulek, což bude vyžadovat více klíčů a indexů.

    Jak se databáze začnou rozšiřovat, výkon se může začít stávat problémem. Toto opět není výslovný požadavek v MongoDB. MongoDB je flexibilní a nepotřebuje nejprve normalizovat data.