यह सभी व्यावहारिक उद्देश्यों के लिए अद्वितीय है। उल्लिखित गैर-विशिष्टता एक सैद्धांतिक है।
ऑब्जेक्टआईड निर्मित है में से
- एक समय टिकट (युग के बाद से सेकंड)
- एक मशीन पहचानकर्ता
- प्रक्रिया आईडी
- और एक यादृच्छिक मान से शुरू होने वाला 3 बाइट काउंटर प्रत्येक सेकंड
इसलिए, माध्यिका पर, जब तक आप प्रति ग्राहक प्रति सेकंड 3080 से अधिक दस्तावेज़ नहीं लिखते हैं, आपको सहेजना चाहिए। यह ध्यान रखना चाहिए कि _id
एक अद्वितीय बाधा है:यहां तक कि अगर आप एक ही ObjectId को दो बार लिखने का प्रयास करेंगे, एक अपवाद होगा।
साइड नोट:यहां तक कि हैश एल्गोरिदम जैसे MD5 या (कुछ हद तक) SHA256 में टकराव की थोड़ी संभावना है। लेकिन एक अद्वितीय बाधा के साथ, आप सुरक्षित हैं।
संपादित करें :चूंकि एक अपवाद को बहुत, बहुत, बहुत दुर्लभ मामले में फेंक दिया जाता है कि दो समान ऑब्जेक्ट आईडी उत्पन्न होते हैं और एक साथ लिखने का प्रयास किया जाता है, आप बस एक नया ऑब्जेक्ट आईडी बनाकर उन्हें संभालते हैं और दस्तावेज़ को फिर से सहेजने का प्रयास करते हैं।