Oba tyto články jsou správné a oba jsou špatné.
Vložit či nevložit? Toto je vždy klíčová otázka a záleží na vašich potřebách, dotazování a ukládání a dokonce i na vaší pracovní sadě.
Na konci dne vám můžeme poskytnout pouze ukazatele, které vám ve skutečnosti neřeknou, která je nejlepší.
Nicméně s ohledem na velikost zdroje aktivit bych jej osobně nevkládal, protože by mohl snadno přesáhnout 16meg (na uživatele), ale pro rychlost a sílu dotazování byste mohli agregovat například posledních 20 aktivit uživatele a poté vložit to do řádku uživatelů (protože posledních 20 je obvykle to, na co se dotazuje nejvíce).
Ale pak závisí vkládání agregátu, sharding se může postarat o dotazování obrovských horizontálně škálovaných kolekcí a použití správných dotazů znamená, že z vkládání nezískáte žádné skutečné výhody a mohlo by vám to potenciálně ztížit život tím, že budete muset udržovat indexy, úložiště a dotazy potřebné k údržbě tohoto vnořeného dokumentu.
Co se týče vnoření až k smrti. Mnoho dotazování MongoDB v současné době spoléhá většinou na jedno nebo dvouúrovňové vkládání, takže může být obtížné udržovat řekněme 12 vnořených tabulek, v tu chvíli se zde a ve skupině Google začínají objevovat otázky, jak takové obrovský dokument (odpověď je na straně klienta, pokud opravdu chcete).
Vzhledem k tomu bych na uživatele umístil souhrn, což znamená, že uživatel může vidět svou vlastní aktivitu nebo aktivitu jiných uživatelů jednotlivě během jedné zpáteční cesty.
Nicméně vzhledem k tomu, že učitel by s největší pravděpodobností musel mít výsledky stránek od všech uživatelů, umístil bych samostatnou kolekci aktivit a dotazoval bych se na ně. Stránkování souhrnu vnořených dokumentů vyžaduje několik dotazů a v tomto případě by bylo lepší to udělat tímto způsobem.
Doufejme, že by vás to mělo nastartovat.