जिस मैनुअल सेक्शन का आप जिक्र कर रहे हैं, उसमें प्रलेखन बिल्कुल स्पष्ट है, जो पर अनुभाग है। डेटाबेस संदर्भ . इसे समझने में सबसे महत्वपूर्ण हिस्सा पृष्ठ पर प्रारंभिक वक्तव्य में निहित है:
आगे की जानकारी में इस विषय को शामिल किया गया है कि आप कैसे संभव किसी अन्य संग्रह में संग्रहीत डेटा तक पहुँचने से निपटने के लिए चुनें।
DBRef है विनिर्देश जो बहुत अधिक विवरण में जाए बिना, हो सकता है कुछ ड्राइवरों में इस तरह से लागू किया जाना चाहिए कि जब ये आपके दस्तावेज़ों में पाए जाते हैं तो वे संदर्भित दस्तावेज़ को वर्तमान दस्तावेज़ में स्वचालित रूप से पुनर्प्राप्त (विस्तारित) कर देंगे। इसे उस _id के दस्तावेज़ के लिए उस संग्रह के लिए एक और क्वेरी के साथ "पर्दे के पीछे" लागू किया जाएगा।
मैन्युअल संदर्भ के मामले में यह मूल रूप से कह रहा है कि आपके दस्तावेज़ में केवल एक फ़ील्ड है जिसकी सामग्री ObjectId है दूसरे दस्तावेज़ से। यह केवल DBRef से कुछ अलग है जो कभी नहीं आधार चालक कार्यान्वयन द्वारा संसाधित किया जा सकता है यह छोड़ देता है कि आप उस अन्य दस्तावेज़ की किसी और पुनर्प्राप्ति को कैसे संभालते हैं।
के मामले में:
> db.collection.findOne()
{
_id: <ObjectId>,
name: "This",
something: "Else",
ref: <AnotherObjectId>
}
ref
दस्तावेज़ में फ़ील्ड एक सादे ऑब्जेक्ट आईडी से ज्यादा कुछ नहीं है और कुछ खास नहीं करता है। यह आपको यह करने की अनुमति देता है कि ऑब्जेक्ट विवरण प्राप्त करने के लिए अपनी खुद की क्वेरी सबमिट करें:
> db.othercollection.findOne({ _id: <AnotherObjectId > })
{
_id: <ObjectId>
name: "That"
something: "I am a sub-document to This!"
}
ध्यान रखें कि यह सभी प्रक्रिया क्लाइंट साइड पर ड्राइवर एपीआई के माध्यम से होती है। किसी भी मामले में सर्वर पर अन्य दस्तावेजों को लाने में से कोई भी नहीं होता है।