sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Schema Design – nová kolekce nebo reference?

Úvod:

Ve vašem případě budou obě varianty dobré, protože kategorie je pouze výčet a pro zobrazení kurzu nepotřebujete načíst kategorii, stačí vytvořit nějaký výčet a získat název kategorie podle id.

Ale například, pokud máte tabulku db.users a každý uživatel má kolekci db.courses, nemusíte vytvářet samostatný dokument, potřebujete pouze vnořené kurzy kolekce. A je to opravdu skvělé, protože v SQL potřebujete vytvořit samostatnou tabulku s jedním až mnoha odkazy.

Jednou velkou výhodou databáze dokumentů je to, že můžete vytvářet velké dokumenty s vnořenými kolekcemi a není třeba spojovat tabulky.

Odpověď:

Takže ve vašem případě navrhuji dva způsoby:

  1. Vytvořte výčet kategorií a získejte název kategorie podle id (ale nenačítat z mongo).
  2. Stačí zkopírovat název kategorie v kurzu (Ale první případ je lepší, protože v případě, že by se název kategorie změnil, je potřeba aktualizovat každý kurz novým názvem kategorie).



  1. Existuje způsob, jak použít objekty dotazů MongoDB k filtrování běžných polí JavaScriptu?

  2. MongoDB $setEquals

  3. Jak přesunu databázi redis z jednoho serveru na druhý?

  4. MongoDB insertOne()