आपकी संरचना सही दिखती है। आप डेटा फ़ील्ड में केवल news_id संग्रहीत कर रहे हैं और यह एक बेहतर कार्यान्वयन है क्योंकि पूरा दस्तावेज़ संग्रहीत करने से उपयोगकर्ता द्वारा पसंदीदा में हर बार एक नई खबर जोड़े जाने पर MongoDB द्वारा बहुत अधिक गति और लेखन का कारण होगा।
कारण, जो आप शायद पहले से ही जानते हैं, वह यह है कि हर अपडेट पर एक नया दस्तावेज़ बनाया जाता है। संदर्भ:http://docs.mongodb.org/ मैन्युअल/संदर्भ/विधि/db.collection.save/#upert ।
इसके अलावा, मुझे लगता है कि एक व्यावसायिक नियम के रूप में आपको उन समाचारों की संख्या को सीमित करना चाहिए जिन्हें उपयोगकर्ता द्वारा पसंदीदा के रूप में सेट किया जा सकता है। इस सूची को अनिश्चित काल तक बढ़ने देना एम्बेडेड डिज़ाइन के लिए एक अच्छा विचार नहीं होगा।
यदि आप असीमित संख्या में पसंदीदा चाहते हैं, तो आप बेहतर ढंग से उसके लिए एक अलग संग्रह बनाते हैं और फिर उपयोगकर्ता द्वारा सभी पसंदीदा प्राप्त करने के लिए एक एकत्रीकरण क्वेरी में $match (उपयोगकर्ता की आईडी पर) और $sort (समाचार आइटम का) ऑपरेटरों का उपयोग करते हैं उपयोगकर्ता के लिए पसंदीदा समाचार वस्तुओं की क्रमबद्ध सूची प्राप्त करें।