MongoDB शेल में नया ObjectId जनरेट करना
MongoDB शेल एक बिल्ट-इन ObjectId() कंस्ट्रक्टर प्रदान करता है जो एक नया अद्वितीय 12-बाइट ObjectId जनरेट करता है। प्रत्येक कॉल एक अलग मान उत्पन्न करता है।
सिंटैक्स
new ObjectId()
या बस:
ObjectId()
उदाहरण: मल्टीपल ObjectIds जनरेट करना
> new ObjectId()
ObjectId("5cd7bf2f6d78f205348bc646")
> new ObjectId()
ObjectId("5cd7bf316d78f205348bc647")
> new ObjectId()
ObjectId("5cd7bf336d78f205348bc648")
> new ObjectId()
ObjectId("5cd7bf346d78f205348bc649")
> new ObjectId()
ObjectId("5cd7bf356d78f205348bc64a")
> new ObjectId()
ObjectId("5cd7bf396d78f205348bc64b")
> new ObjectId()
ObjectId("5cd7bf3a6d78f205348bc64c")
ObjectId संरचना (12 बाइट्स)
| बाइट्स | घटक | विवरण |
|---|---|---|
| 0-3 | टाइमस्टैम्प | यूनिक्स एपोक से सेकंड (4 बाइट्स) |
| 4-6 | मशीन आईडेंटिफायर | मशीन के लिए अद्वितीय (3 बाइट्स) |
| 7-8 | प्रोसेस आईडेंटिफायर | MongoDB प्रोसेस PID (2 बाइट्स) |
| 9-11 | काउंटर | प्रति प्रोसेस इंक्रीमेंटिंग काउंटर (3 बाइट्स) |
ObjectId से टाइमस्टैम्प निकालना
> ObjectId("5cd7bf2f6d78f205348bc646").getTimestamp()
ISODate("2019-05-12T10:25:03Z")
कस्टम ObjectId के साथ डॉक्यूमेंट इन्सर्ट करना
आप इन्सर्ट के दौरान एक विशिष्ट ObjectId प्रदान कर सकते हैं (स्वचालित जनरेशन को ओवरराइड करता है):
> db.collection.insertOne({ _id: ObjectId("5cd7bf2f6d78f205348bc646"), "name": "Test" });
ड्राइवर्स में उपयोग
- Node.js:
const { ObjectId } = require('mongodb'); new ObjectId() - Python:
from bson.objectid import ObjectId; ObjectId() - Java:
new ObjectId()(org.bson.types.ObjectId) - C#:
ObjectId.GenerateNewId()
मुख्य बिंदु
- प्रत्येक
ObjectId()कॉल एक अद्वितीय मान उत्पन्न करता है। - ObjectId मोटे तौर पर क्रमबद्ध होते हैं (टाइमस्टैम्प पहले)।
- केंद्रीय समन्वय के बिना वितरित सिस्टम के लिए उपयुक्त।
- यदि प्रदान नहीं किया गया है तो MongoDB स्वचालित रूप से _id के लिए ObjectId निर्दिष्ट करता है।