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

MongoDB Schema Design – Mnoho malých dokumentů nebo méně velkých dokumentů?

Určitě budete muset provést optimalizaci pro dotazy, které děláte.

Zde je můj nejlepší odhad na základě vašeho popisu.

Pravděpodobně budete chtít znát všechny kreditní karty pro každého zákazníka, takže si ponechte řadu těchto karet v objektu zákazníka. Pravděpodobně budete také chtít mít pro každou platbu zákaznickou referenci. Platební doklad tak zůstane relativně malý.

Platební objekt bude mít automaticky své vlastní ID a index. Pravděpodobně budete chtít přidat index také do Zákaznické reference.

To vám umožní rychle vyhledávat platby podle zákazníka, aniž byste pokaždé ukládali celý objekt zákazníka.

Pokud chcete odpovědět na otázky jako Jaká byla průměrná částka, kterou všichni zákazníci zaplatili minulý měsíc? místo toho budete chtít mapu / zmenšení pro jakoukoli velkou datovou sadu. Nedostáváte tuto odpověď „v reálném čase“. Zjistíte, že uložení „odkazu“ na zákazníka je pro tyto redukované mapy pravděpodobně dost dobré.

Abychom tedy odpověděli přímo na vaši otázku:Je MongoDB navržen tak, aby preferoval mnoho, mnoho malých dokumentů nebo méně velkých dokumentů?

MongoDB je navržen tak, aby velmi rychle našel indexované položky. MongoDB je velmi dobrý v hledání několika jehly ve velké kupce sena. MongoDB není velmi dobrý v hledání většiny z jehel v kupce sena. Vytvářejte tedy svá data podle svých nejběžnějších případů použití a pište úlohy mapování/redukování pro vzácnější případy použití.



  1. Redis je možné aktualizovat více klíčů hset (nikoli polí) pomocí mset

  2. Chyba:queryTxt ETIMEOUT při připojování k MongoDb Atlas pomocí mongoose

  3. Jak nainstalovat MongoDB

  4. Jak zkontrolovat, zda je index skrytý v MongoDB