मैं यहां इस पर थोड़ी चर्चा करता हूं, इसे पहले पढ़ें:https://stackoverflow.com/a/27285313/ 68567
आपके मामले के लिए, विकल्प 3 (आपके प्राथमिक मॉडल में कुछ डेटा रखना) शायद सबसे अच्छा है। कुंजी यह है कि असीमित सरणी वृद्धि से बचें .
यह मोंगोडब दस्तावेजों को कैसे आवंटित करता है, इसके साथ करना है। http://docs.mongodb.org/manual/core/storage/ "MongoDB में प्रत्येक दस्तावेज़ को एक रिकॉर्ड में संग्रहीत किया जाता है जिसमें दस्तावेज़ स्वयं और अतिरिक्त स्थान, या पैडिंग होता है, जो दस्तावेज़ को अपडेट के परिणामस्वरूप बढ़ने देता है।"
जब नोड नए दस्तावेज़ आवंटित करता है तो यह सम्मिलित दस्तावेज़ के आकार और आपके संग्रह में पहले से मौजूद दस्तावेज़ों के आकार के आधार पर स्थान आवंटित करता है। (उपरोक्त लिंक में और पढ़ें।) यदि आपके पास कुछ दस्तावेज़ हैं जो दूसरों की तुलना में बड़े परिमाण के आदेश हैं तो इससे विखंडन हो सकता है।
आपके 'टिप्पणियों' उप-दस्तावेज़ सरणी में बहुत अधिक दस्तावेज़ होने से बचने का तरीका $push और $slice आदेशों के साथ है।http://docs.mongodb.org/manual/reference/operator/update/slice/
तो 'सबसे हाल के 5' को स्टोर करें और आइटम को पहली बार लोड होने पर प्रदर्शित करें। (या सबसे पुराना, या जो भी अन्य सॉर्टिंग मानदंड आप उपयोग करना चाहते हैं।) फिर उपयोगकर्ता को अधिक लोड करने का एक तरीका प्रदान करें जो संग्रह के लिए एक अलग राउंड-ट्रिप करेगा जिसमें वे सभी हैं।