MongoDB - ऑब्जेक्टआईड

हम पिछले सभी अध्यायों में MongoDB Object Id का उपयोग करते रहे हैं। इस अध्याय में, हम ObjectId की संरचना को समझेंगे।

एक ObjectId 12-बाइट BSON प्रकार निम्नलिखित संरचना है -

  • यूनिक्स युग से पहले 4 बाइट्स सेकंड का प्रतिनिधित्व करते हैं
  • अगले 3 बाइट्स मशीन पहचानकर्ता हैं
  • अगले 2 बाइट्स होते हैं process id
  • अंतिम 3 बाइट्स एक यादृच्छिक काउंटर मान हैं

MongoDB ऑब्जेक्ट के डिफ़ॉल्ट मान के रूप में उपयोग करता है _idप्रत्येक दस्तावेज़ का क्षेत्र, जो किसी दस्तावेज़ के निर्माण के दौरान उत्पन्न होता है। ObjectId का जटिल संयोजन सभी _id क्षेत्रों को विशिष्ट बनाता है।

नई वस्तु का निर्माण

एक नया ObjectId उत्पन्न करने के लिए निम्नलिखित कोड का उपयोग करें -

>newObjectId = ObjectId()

उपरोक्त कथन ने निम्नलिखित विशिष्ट आईडी को लौटा दिया -

ObjectId("5349b4ddd2781d08c09890f3")

MongoDB ObjectId जेनरेट करने के बजाय, आप एक 12-बाइट आईडी भी प्रदान कर सकते हैं -

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

एक दस्तावेज़ का टाइमस्टैम्प बनाना

चूंकि डिफ़ॉल्ट ऑब्जेक्ट द्वारा _id ऑब्जेक्ट 4-बाइट टाइमस्टैम्प को संग्रहीत करता है, ज्यादातर मामलों में आपको किसी भी दस्तावेज़ के निर्माण समय को संग्रहीत करने की आवश्यकता नहीं होती है। आप GetTimestamp विधि का उपयोग करके दस्तावेज़ के निर्माण का समय ले सकते हैं -

>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

यह आईएसओ तिथि प्रारूप में इस दस्तावेज के निर्माण का समय लौटाएगा -

ISODate("2014-04-12T21:49:17Z")

स्ट्रिंग के लिए ObjectId परिवर्तित

कुछ मामलों में, आपको स्ट्रिंग प्रारूप में ऑब्जेक्टआईड के मूल्य की आवश्यकता हो सकती है। ऑब्जेक्ट को स्ट्रिंग में बदलने के लिए, निम्नलिखित कोड का उपयोग करें -

>newObjectId.str

उपरोक्त कोड दिशानिर्देश का स्ट्रिंग प्रारूप लौटाएगा -

5349b4ddd2781d08c09890f3