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

Jsou dílčí dokumenty mongodb ekvivalentní podsbírkám Firestore?

Kolik aktivit může mít jeden projekt? Pokud neexistuje žádný limit, pak je lepší vytvořit kolekci na kořenové úrovni pro aktivity. V MongoDB je maximální velikost dokumentu BSON 16 MB . Z tohoto důvodu možná nebudete moci uložit všechny projekty a jejich aktivity do jednoho dokumentu (dokument organizace).

Vytvořil bych 3 kolekce a to – organizace, projekty a aktivity.

  1. Každá organizace by měla mít dokument v organizacích sbírku podobnou té, kterou máte ve Firestore.
  2. Každý projekt by měl mít dokument v projektech kolekce obsahující pole „ID organizace“, takže můžete dotazovat projekty konkrétní organizace pomocí jejich ID. Toto je ekvivalent dokumentu ve vaší podsbírce projektů. Každý projekt musí mít také své vlastní jedinečné ID.
  3. Každá aktivita by měla mít dokument v aktivitách kolekce obsahující pole "projectID", takže lze načíst aktivity konkrétního projektu.

Přidal jsem tato další organizationID , projectID pole, i když máte _id jen pro případ, že byste tam chtěli mít ID dokumentů Firestore pro snadnější dotazy vedle sebe.

O 16 MB se nemusíte bát tímto způsobem omezíte velikost dokumentu a bude snazší dotazovat se na projekty i aktivity, pokud máte správná ID.

Dotazování aktivit určitého projektu:

await db.collection("activities").find({projectID: "myProjectID"}).toArray()

Poté je na vás, jak chcete psát dotazy s projekcemi, agregací atd.




  1. Mongodb získá poslední kombinaci v agregačním rámci

  2. Jak funguje mechanismus předplatného Redis PubSub?

  3. Jak propojit Django Rest-api s MongoDB?

  4. Mám sdílet připojení Redis mezi soubory/moduly?