MongoDB स्वचालित रूप से इसमें डाली गई प्रत्येक वस्तु के लिए एक आईडी बनाता है। आपको अपनी खुद की आईडी बनाने की जरूरत नहीं है।
यदि आपको एक वृद्धिशील पूर्णांक आईडी की आवश्यकता है तो आप सभी प्रकार के वितरित सिंक्रनाइज़ेशन मुद्दों में भाग लेते हैं - गैर-तुच्छ मामलों के लिए सही होना वास्तव में काफी कठिन है।
एक अद्वितीय आईडी बनाने के लिए सबसे आसान तरीका जिसके बारे में मैं सोच सकता हूं:
- आईडी कॉलम पर एक अद्वितीय बाधा के साथ एक अनुक्रमणिका डालें।
- उच्चतम संख्या के लिए अनुक्रमणिका पर दस्तावेज़ क्वेरी सम्मिलित करने के लिए, 1 जोड़ें, उसे आईडी के रूप में उपयोग करें।
- यदि डुप्लिकेट अनुक्रमणिका पुन:प्रयास के कारण इंसर्ट विफल हो जाता है
इसमें कुछ राउंड ट्रिप शामिल हैं लेकिन यह मजबूत होना चाहिए और इंडेक्स काफी तेज होना चाहिए।
यदि आपके पास इन्हें लिखने के लिए केवल एक स्थान है, तो आप स्थानीय रूप से AtomicInteger में आईडी को कैश कर सकते हैं और केवल पूर्ण राउंड ट्रिप प्रक्रिया कर सकते हैं यदि आप टकराव का पता लगाते हैं तो AtomicInteger को अपडेट करें।