Trochu o tom diskutuji zde, nejprve si přečtěte toto:https://stackoverflow.com/a/27285313/ 68567
Pro váš případ je pravděpodobně nejlepší možnost 3 (uchování některých dat ve vašem primárním modelu). Klíčem je Vyhnout se neomezenému růstu pole .
To souvisí s tím, jak Mongodb přiděluje dokumenty. http://docs.mongodb.org/manual/core/storage/ "Každý dokument v MongoDB je uložen v záznamu, který obsahuje samotný dokument a další prostor nebo výplň, která umožňuje dokumentu růst v důsledku aktualizací."
Když uzel přiděluje nové dokumenty, přiděluje prostor na základě velikosti vloženého dokumentu a velikostí dokumentů, které již jsou ve vaší kolekci. (Více se dočtete v odkazu výše.) Pokud máte některé dokumenty řádově větší než ostatní, pravděpodobně to povede k fragmentaci.
Způsob, jak zabránit tomu, aby bylo v poli poddokumentů „komentářů“ příliš mnoho dokumentů, jsou příkazy $push a $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/
Uložte tedy „nejnovějších 5“ a zobrazte je při prvním načtení položky. (Nebo nejstarší nebo jakákoli jiná kritéria třídění, která chcete použít.) Poté uživateli poskytněte způsob, jak načíst další, což provede samostatnou zpáteční cestu ke kolekci, která je má všechna.