नहीं, यह बिल्कुल भी बुरा नहीं है और वास्तव में अंतर्निहित ObjectId
. है सूचकांक के भीतर काफी बड़ा है, इसलिए यदि आपको लगता है कि आपके पास कुछ बेहतर है तो _id
के डिफ़ॉल्ट मान को बदलने के लिए आपका स्वागत है। जो कुछ भी क्षेत्र।
लेकिन, और यह एक बड़ा लेकिन है , डिफ़ॉल्ट रूप से तैयार किए गए ObjectId
. से दूर जाने का निर्णय लेते समय कुछ विचार होते हैं , विशेष रूप से ऑटो इंक्रीमेंटिंग _ids का उपयोग करते समय जैसा कि यहां दिखाया गया है:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field
मल्टी थ्रेडिंग इतनी बड़ी समस्या नहीं है क्योंकि findAndModify
और परमाणु ताले वास्तव में इसका ख्याल रख सकते हैं, लेकिन फिर आप अपनी पहली समस्या में आ गए। findAndModify
सबसे तेज़ कार्य नहीं है और न ही सबसे हल्का है और नियमित रूप से इसका उपयोग करते समय महत्वपूर्ण प्रदर्शन गिरावट देखी गई है।
findAndModify
. के बिना भी, आपको इसे स्वयं करने के ऊपरी हिस्से पर भी विचार करना होगा . प्रत्येक डालने के लिए आपको एक अतिरिक्त क्वेरी की आवश्यकता होगी। कल्पना कीजिए कि आपके पास एक अद्वितीय आईडी है जिसे आपको हर बार सम्मिलित करने की विशिष्टता के बारे में पूछना है। अंतत:आपकी डालने की दर कम होकर क्रॉल हो जाएगी और आपका लॉक समय बढ़ जाएगा।
बेशक ObjectId
सम्मिलन से पहले डेटाबेस को छूकर अपनी विशिष्टता की जांच या निर्माण किए बिना अद्वितीय होने में वास्तव में अच्छा है, इसलिए इसमें यह ओवरहेड नहीं है।
अगर आपको अभी भी एक पूर्णांक _id आपके परिदृश्य के अनुकूल लगता है, तो इसके लिए जाएं, लेकिन ऊपर वर्णित ओवरहेड को ध्यान में रखें।