Обсъждам това малко тук, първо прочетете това:https://stackoverflow.com/a/27285313/ 68567
За вашия случай Вариант 3 (запазване на някои от данните във вашия основен модел) вероятно е най-добрият. Ключът е да избягвате неограничен растеж на масив .
Това е свързано с това как Mongodb разпределя документи. http://docs.mongodb.org/manual/core/storage/ „Всеки документ в MongoDB се съхранява в запис, който съдържа самия документ и допълнително пространство или подложка, което позволява на документа да расте в резултат на актуализации.“
Когато възелът разпределя нови документи, той разпределя място въз основа на размера на вмъкнатия документ и размерите на документите, които вече са във вашата колекция. (Прочетете повече във връзката по-горе.) Ако имате някои документи, които са с порядък по-големи от други, това вероятно ще доведе до фрагментация.
Начинът да избегнете твърде много документи във вашия масив от поддокументи „коментари“ е с командите $push и $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/
Затова запазете „последните 5“ и ги покажете при първото зареждане на елемента. (Или най-стари, или какъвто и да е друг критерий за сортиране, който искате да използвате.) След това осигурете начин за потребителя да зареди повече, което ще направи отделно двупосочно пътуване до колекцията, която съдържа всички тях.