पारंपरिक संबंधपरक प्रणालियों में डीबीआरएफ विदेशी कुंजी की तरह कुछ भी नहीं है। यह केवल एक सम्मेलन है जो आसानी से एक ड्राइवर (जो सक्षम है) को उन संदर्भित दस्तावेजों को स्वत:लोड करने के लिए कहता है। कृपया देखें DBRef इस बारे में अधिक जानकारी के लिए।
उपयोग किए गए ड्राइवर के आधार पर, आप केवल उन संदर्भों को स्वचालित रूप से लोड करने में सक्षम हो सकते हैं जब आपको उनकी आवश्यकता होती है (आलसी), इसलिए प्रदर्शन ओवरहेड वास्तव में छोटा होना चाहिए। लेकिन स्टोरेज ओवरहेड किसी अन्य दस्तावेज़ के साधारण संदर्भित _id से थोड़ा अधिक है। मूल रूप से, मैं कहूंगा कि आपको केवल उन DBrefs का उपयोग करना चाहिए यदि लिंक किया गया दस्तावेज़ चर प्रकार का हो सकता है। यदि यह स्थिर है तो आप _id-references और शायद अपनी आलसी लोडर कार्यक्षमता से फंस गए हैं, इसलिए आप स्वयं को दोहराएं नहीं।
अपने आप को न दोहराएं (या डेटाबेस के संदर्भ में डेटा दोहराव) आपके संदर्भ में भी लागू होता है, जैसा कि MongoDB अनुशंसा करता है (इसलिए मैं भी करूंगा), केवल अपने दस्तावेज़ लिंक करें . अन्यथा आपके पास केवल एक तार्किक इकाई को अपडेट करने के लिए उच्च भंडारण उपयोग और कुछ लंबे समय तक चलने वाले अपडेट होंगे (भौतिक रूप से बहुत बार डुप्लिकेट किया गया)।
पहले उल्लिखित कस्टम आलसी लोडर के साथ आप कुछ कैशिंग जोड़ सकते हैं ताकि प्रत्येक लुकअप वास्तव में एक मोंगोडब लुकअप में न हो। सबसे अधिक संभावना है कि आपको कैश और डीबी के बीच अपने डेटा स्थिरता का ख्याल रखना होगा।