आपको एम्बेडेड दस्तावेजों का उपयोग करना चाहिए यदि वे स्थिर दस्तावेज हैं या जो प्रदर्शन प्रभाव के कारण कुछ सौ से अधिक नहीं हैं। मैं थोड़ी देर पहले उस मुद्दे से गुज़रा हूँ। नव्या, मोंगाडीबी के लिए एक समाधान वास्तुकार के रूप में काम करने वाली आशा काम्स्की ने "सबडिमेक्शंस का उपयोग" के बारे में एक लेख लिखा था।
मुझे उम्मीद है कि जो समाधान या सर्वोत्तम अभ्यास की तलाश कर रहा है वह मदद करता है।
सबसे पहले, हमें विचार करना होगा कि हम ऐसा क्यों करना चाहते हैं। आम तौर पर, मैं लोगों को उन चीजों को एम्बेड करने की सलाह दूंगा जो वे हमेशा इस दस्तावेज को लाने के बाद वापस प्राप्त करना चाहते हैं। इसका दूसरा पहलू यह है कि आप दस्तावेज़ में उन चीजों को एम्बेड नहीं करना चाहते हैं जिन्हें आप वापस नहीं लाना चाहते हैं।
यदि आप गतिविधि को दस्तावेज़ में एम्बेड करते हैं, तो यह पहली बार में बहुत अच्छा काम करेगा क्योंकि मेरी सारी गतिविधि वहीं है और एक ही रीड के साथ आप वह सब कुछ वापस पा सकते हैं जो आप मुझे दिखाना चाहते हैं: "आपने हाल ही में इस पर और यहाँ क्लिक किया है। क्या आपकी अंतिम दो टिप्पणियां हैं "लेकिन छह महीने बाद क्या होता है और मैं उन चीजों की परवाह नहीं करता हूं जो मैंने बहुत समय पहले की थीं और आप उन्हें मुझे तब तक नहीं दिखाना चाहते जब तक कि मैं विशेष रूप से किसी पुरानी गतिविधि की तलाश में न जाऊं?
सबसे पहले, आप बड़े और बड़े दस्तावेज़ को वापस करेंगे और इसके छोटे और छोटे हिस्से की देखभाल करेंगे। लेकिन आप केवल कुछ ऐरे को वापस करने के लिए प्रोजेक्शन का उपयोग कर सकते हैं, असली दर्द यह है कि डिस्क पर दस्तावेज़ बड़ा हो जाएगा और यह अभी भी सभी को पढ़ा जाएगा, भले ही आप केवल अंतिम उपयोगकर्ता तक इसका हिस्सा वापस करने जा रहे हों, लेकिन चूंकि मेरी गतिविधि तब तक रुकने वाली नहीं है जब तक मैं सक्रिय हूं, दस्तावेज़ बढ़ते रहेंगे और बढ़ते रहेंगे।
इसके साथ सबसे स्पष्ट समस्या अंततः आपको 16MB दस्तावेज़ सीमा से टकराएगी, लेकिन यह बिल्कुल भी नहीं है कि आपको किस बारे में चिंतित होना चाहिए। एक दस्तावेज़ जो लगातार बढ़ता है वह डिस्क पर स्थानांतरित होने के लिए हर बार उच्च और उच्च लागत को उकसाएगा, और यहां तक कि अगर आप विखंडन के प्रभाव को कम करने के लिए कदम उठाते हैं, तो भी आपके लेखन को अनावश्यक रूप से लंबा होगा, आपके पूरे आवेदन के समग्र प्रदर्शन को प्रभावित करेगा।
एक और बात यह है कि आप ऐसा कर सकते हैं जो आपके एप्लिकेशन के प्रदर्शन को पूरी तरह से मार देगा और इस बढ़ते हुए सरणी को अनुक्रमित करना होगा। इसका मतलब यह है कि हर बार जब इस सरणी के साथ दस्तावेज़ को स्थानांतरित किया जाता है, तो सूचकांक प्रविष्टियों की संख्या जिसे अद्यतन करने की आवश्यकता होती है, उस दस्तावेज़ में अनुक्रमित मानों की संख्या के लिए सीधे आनुपातिक होती है, और सरणी जितनी बड़ी होगी, उतनी बड़ी संख्या होगी। हो।
मैं नहीं चाहता कि जब आप डेटा मॉडल के लिए उपयुक्त हों, तो उन्हें सरणियों का उपयोग करने से रोकें - वे दस्तावेज़ डेटाबेस डेटा मॉडल की एक शक्तिशाली विशेषता हैं, लेकिन सभी शक्तिशाली उपकरणों की तरह, इसे सही परिस्थितियों में उपयोग करने की आवश्यकता है और इसका उपयोग देखभाल के साथ किया जाना चाहिए।