MongoDB सर्वर साइड विदेशी कुंजी संबंधों का समर्थन नहीं करता है, सामान्यीकरण को भी हतोत्साहित किया जाता है। यदि संभव हो तो आपको अपने बच्चे की वस्तु को मूल वस्तुओं के भीतर एम्बेड करना चाहिए, इससे प्रदर्शन में वृद्धि होगी और विदेशी कुंजी पूरी तरह से अनावश्यक हो जाएगी। उस ने कहा कि यह हमेशा संभव नहीं होता है, इसलिए डीबीआरएफ नामक एक विशेष निर्माण होता है जो वस्तुओं को एक अलग संग्रह में संदर्भित करने की अनुमति देता है। यह तब इतना तेज़ नहीं हो सकता है क्योंकि डीबी को वस्तुओं को पढ़ने के लिए अतिरिक्त प्रश्न करना पड़ता है लेकिन विदेशी कुंजी संदर्भ की अनुमति देता है।
फिर भी आपको अपने संदर्भों को मैन्युअल रूप से संभालना होगा। केवल अपने डीबीआरएफ को देखते समय आप देखेंगे कि क्या यह मौजूद है, डीबी संदर्भों को देखने के लिए सभी दस्तावेजों के माध्यम से नहीं जाएगा और यदि संदर्भ का लक्ष्य मौजूद नहीं है तो उन्हें हटा दें। लेकिन मुझे लगता है कि पुस्तक को हटाने के बाद सभी संदर्भों को हटाने के लिए प्रति संग्रह एक ही प्रश्न की आवश्यकता होगी, और नहीं, इसलिए वास्तव में यह मुश्किल नहीं है।
यदि आपकी स्कीमा अधिक जटिल है तो शायद आपको एक रिलेशनल डेटाबेस चुनना चाहिए न कि nosql।
MongoDB डेटाबेस डिज़ाइन करने के बारे में एक पुस्तक भी है:MongoDB के लिए दस्तावेज़ डिज़ाइन
अपडेट करें उपरोक्त पुस्तक अब उपलब्ध नहीं है, फिर भी MongoDB की लोकप्रियता के कारण कई अन्य हैं। मैं उन सभी को लिंक नहीं करूंगा, क्योंकि ऐसे लिंक बदलने की संभावना है, अमेज़ॅन पर एक साधारण खोज कई पेज दिखाती है, इसलिए कुछ को खोजने में कोई समस्या नहीं होनी चाहिए।
अधिक विशिष्टताओं और उदाहरणों के लिए 'मैन्युअल संदर्भ' और DBRefs के लिए MongoDB मैन्युअल पृष्ठ देखें