MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में संग्रह आईडी की लंबाई

डिफ़ॉल्ट क्यों है _id एक 24 वर्ण हेक्स स्ट्रिंग?

प्राथमिक कुंजी के रूप में उत्पन्न डिफ़ॉल्ट विशिष्ट पहचानकर्ता (_id ) MongoDB दस्तावेज़ के लिए एक ObjectId है . यह एक 12 बाइट बाइनरी मान है जिसे अक्सर 24 वर्ण हेक्स स्ट्रिंग के रूप में दर्शाया जाता है, और MongoDB द्वारा समर्थित मानक फ़ील्ड प्रकारों में से एक बीएसओएन विनिर्देश

ऑब्जेक्ट आईडी के 12 बाइट्स का निर्माण निम्न का उपयोग करके किया जाता है:

  • एक 4 बाइट मान जो यूनिक्स युग के बाद के सेकंडों को दर्शाता है
  • एक 3 बाइट मशीन पहचानकर्ता
  • एक 2 बाइट प्रोसेस आईडी
  • एक 3 बाइट काउंटर (यादृच्छिक मान से शुरू)

ऑब्जेक्ट आईडी का क्या महत्व है?

ObjectIds (या GUID के अनुसार जेनरेट किए गए समान पहचानकर्ता फॉर्मूला) अद्वितीय पहचानकर्ताओं को एक वितरित सिस्टम में स्वतंत्र रूप से उत्पन्न करने की अनुमति देता है।

स्वतंत्र रूप से एक अद्वितीय आईडी उत्पन्न करने की क्षमता बहुत महत्वपूर्ण हो जाती है क्योंकि आप कई एप्लिकेशन सर्वर (या शायद शार्ड क्लस्टर ) आप अनुक्रम काउंटर की तरह एक केंद्रीय समन्वय बाधा नहीं चाहते हैं (उदाहरण के लिए आपके पास ऑटो-इंक्रिमेंटिंग प्राथमिक कुंजी के लिए हो सकता है), और आप जोखिम के बिना नए दस्तावेज़ सम्मिलित करना चाहेंगे कि एक नया पहचानकर्ता बन जाएगा डुप्लिकेट।

एक ObjectId आमतौर पर आपके MongoDB क्लाइंट ड्राइवर द्वारा जेनरेट किया जाता है , लेकिन MongoDB सर्वर पर भी उत्पन्न किया जा सकता है यदि आपका क्लाइंट ड्राइवर या एप्लिकेशन कोड या पहले से कोई _id नहीं जोड़ा है फ़ील्ड.

क्या मुझे डिफ़ॉल्ट ObjectId का उपयोग करना होगा?

नहीं। यदि आपके पास उपयोग करने के लिए अधिक उपयुक्त विशिष्ट पहचानकर्ता है, तो आप हमेशा _id के लिए अपना स्वयं का मान प्रदान कर सकते हैं . यह या तो एकल मान हो सकता है या एकाधिक फ़ील्ड का उपयोग करके मिश्रित मान हो सकता है।

_id . पर मुख्य बाधाएं मान यह हैं कि उन्हें संग्रह के लिए अद्वितीय होना चाहिए और आप _id . को अपडेट या हटा नहीं सकते हैं किसी मौजूदा दस्तावेज़ के लिए।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. संग्रह को शार्प करने का सही तरीका और परिणामों की व्याख्या कैसे करें

  2. मोंगोडब में मिलान किए गए रिकॉर्ड को कैसे खोजें?

  3. Mgo . का उपयोग करके MongoDB में कुशल पेजिंग

  4. MongoDB NodeJS प्रोसेस आउट ऑफ मेमोरी

  5. किसी फ़ाइल से अधिकतम मान खोजने के लिए MongoTemplate विधि या क्वेरी