MongoDB में ObjectId द्वारा दस्तावेज़ खोजना
MongoDB में प्रत्येक दस्तावेज़ का एक यूनिक _id फ़ील्ड होता है (डिफ़ॉल्ट रूप से ObjectId)। find() मेथड के साथ ObjectId का उपयोग करके विशिष्ट दस्तावेज़ को खोजा जा सकता है।
सिंटैक्स
db.collection.find({ "_id": yourObjectId })
सैंपल डेटा बनाना
> db.findByIdDemo.insertOne({"Value":10});
{ "acknowledged" : true, "insertedId" : ObjectId("5e07158925ddae1f53b621fc") }
> db.findByIdDemo.insertOne({"Value":500});
{ "acknowledged" : true, "insertedId" : ObjectId("5e07158c25ddae1f53b621fd") }
> db.findByIdDemo.insertOne({"Value":1000});
{ "acknowledged" : true, "insertedId" : ObjectId("5e07159125ddae1f53b621fe") }
सभी दस्तावेज़ देखना
> db.findByIdDemo.find();
आउटपुट:
विशिष्ट ObjectId द्वारा खोजें
> db.findByIdDemo.find({ "_id" : ObjectId("5e07158c25ddae1f53b621fd") });आउटपुट:
महत्वपूर्ण नोट्स
- ObjectId() कंस्ट्रक्टर आवश्यक है: स्ट्रिंग "5e07158c..." स्वचालित रूप से ObjectId में कनवर्ट नहीं होता
findOne()का उपयोग करें यदि केवल एक दस्तावेज़ अपेक्षित है (कर्सर के बजाय दस्तावेज़ सीधे लौटाता है)
ड्राइवर्स में उपयोग
// Node.js
const { ObjectId } = require('mongodb');
const doc = await collection.findOne({ _id: new ObjectId("5e07158c25ddae1f53b621fd") });
// Python
from bson.objectid import ObjectId
doc = collection.find_one({ "_id": ObjectId("5e07158c25ddae1f53b621fd") })
ObjectId संरचना
ObjectId 12-बाइट मान है जिसमें शामिल हैं:
- 4 बाइट: टाइमस्टैम्प (सेकंड्स)
- 5 बाइट: रैंडम वैल्यू (मशीन + प्रोसेस)
- 3 बाइट: काउंटर
findById() हेल्पर (कुछ ड्राइवर्स/ODM में)
// Mongoose
const doc = await Model.findById("5e07158c25ddae1f53b621fd");