फर्क सिर्फ इतना है कि वास्तव में एक ObjectId
है और दूसरा ObjectId
. जैसा दिखता है, उसका एक स्ट्रिंग प्रतिनिधित्व है .
ऑब्जेक्ट आईडी के रूप में DBRef:
db.persons.insert({name: 'cavin',
sister: new DBRef('persons',
new ObjectId('5165419064fada69cef33ea2'))}) // use an ObjectId
एक स्ट्रिंग के रूप में DBRef:
db.persons.insert({name: 'bob',
sister: new DBRef('persons',
'5165419064fada69cef33ea2')}) // use a string
आपके द्वारा शामिल किए गए उदाहरण में, ObjectId
प्रारूप के परिणामस्वरूप अधिक कुशल भंडारण हो सकता है क्योंकि यह 24 बाइट्स के बजाय 12-बाइट मान है जो स्ट्रिंग प्रतिनिधित्व की आवश्यकता होगी। यदि आप DBRef
. का उपयोग करना चाहते हैं s, मैं एक ObjectId
का उपयोग करूंगा यदि संदर्भित संग्रह ObjectId
. का उपयोग कर रहा है _id
. के लिए ।
आपको ObjectId
. का उपयोग करने की आवश्यकता नहीं है एक DBRef
में . यह कोई भी मान हो सकता है जो कुंजी का प्रतिनिधित्व करता है (_id
) संबंधित संग्रह/डीबी का।
दस्तावेज़ीकरण
के रूप में सुझाव देता है, जब तक कि आपके पास DBRef
. का उपयोग करने के लिए कोई ठोस कारण न हो , इसके बजाय मैन्युअल संदर्भों का उपयोग करें।