ObjectId
ऐसी स्थितियों के लिए हैं जहां आपके पास संग्रह में प्रत्येक दस्तावेज़ के लिए एक अद्वितीय कुंजी नहीं है। वे अद्वितीय हैं, इसलिए आपको संघर्षों के बारे में चिंता करने की ज़रूरत नहीं है और वे बहुत अधिक चिंता किए बिना बड़ी तैनाती में उचित रूप से अच्छी तरह से तेज हो जाते हैं (उनके पास पेशेवर और विपक्ष हैं, और पढ़ें यहां
)
ObjectId
क्लाइंट का टाइमस्टैम्प भी होता है जहाँ ObjectId
उत्पन्न किया गया था (जब तक कि डीबी सर्वर सभी कुंजी उत्पन्न करने के लिए कॉन्फ़िगर नहीं किया जाता है)। इसके साथ, जैसा कि आपने देखा, आप कुछ दिनांक संचालन करने के लिए टाइम स्टैम्प का उपयोग कर सकते हैं। हालांकि, अगर आप एग्रीगेशन फ्रेमवर्क का उपयोग करने की योजना बना रहे हैं, तो आप पाएंगे कि आप ObjectId
का उपयोग नहीं कर सकते हैं। वर्तमान में किसी भी दिनांक संचालन में (समस्या
) यदि आप AF का उपयोग करना चाहते हैं, तो आपको एक दूसरे फ़ील्ड की आवश्यकता होगी जिसमें दिनांक शामिल हो, दुर्भाग्य से इसे ObjectId
के साथ दोगुना संग्रहीत करना होगा का आंतरिक मूल्य।
यदि आप आश्वस्त हो सकते हैं कि _id
आप उत्पन्न कर रहे हैं अद्वितीय है, तो ObjectId
. का उपयोग करने के लिए बहुत अधिक कारण नहीं है आपके डेटा संरचना में।