Ik bespreek dit hier een beetje, lees dit eerst:https://stackoverflow.com/a/27285313/ 68567
Voor uw geval is optie 3 (een deel van de gegevens in uw primaire model behouden) waarschijnlijk de beste. De sleutel is om Onbegrensde arraygroei te vermijden .
Dit heeft te maken met hoe Mongodb documenten toewijst. http://docs.mongodb.org/manual/core/storage/ "Elk document in MongoDB wordt opgeslagen in een record dat het document zelf bevat en extra ruimte, of opvulling, waardoor het document kan groeien als gevolg van updates."
Wanneer node nieuwe documenten toewijst, wijst het ruimte toe op basis van de grootte van het ingevoegde document en de formaten van documenten die al in uw verzameling aanwezig zijn. (Lees meer in de bovenstaande link.) Als u sommige documenten heeft die orden van grootte groter zijn dan andere, zal dit waarschijnlijk tot fragmentatie leiden.
De manier om te voorkomen dat er te veel documenten in uw 'comments'-subdocumentarray staan, is met de $push- en $slice-opdrachten.http://docs.mongodb.org/manual/reference/operator/update/slice/
Sla dus de 'meest recente 5' op en toon die wanneer het item voor het eerst wordt geladen. (Of oudste, of welke andere sorteercriteria u ook wilt gebruiken.) Geef de gebruiker vervolgens een manier om meer te laden, wat een aparte retour naar de verzameling zal doen die ze allemaal heeft.