Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में findOne() के तहत ObjectId का उपयोग करके एक विशिष्ट रिकॉर्ड कैसे प्राप्त करें?

MongoDB में findOne() के साथ ObjectId द्वारा एकल डॉक्यूमेंट पुनर्प्राप्त करना

findOne() मेथड क्वेरी से मेल खाने वाला पहला डॉक्यूमेंट लौटाता है। _id फील्ड पर ObjectId के साथ उपयोग किए जाने पर, यह कुशलता से एकल अद्वितीय डॉक्यूमेंट पुनर्प्राप्त करता है।

नमूना डेटा बनाना

> db.findOneWorkingDemo.insertOne({"ClientId":1,"ClientName":"Larry","ClientAge":26});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c1716d78f205348bc64d") }
> db.findOneWorkingDemo.insertOne({"ClientId":2,"ClientName":"Chris","ClientAge":28});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c17d6d78f205348bc64e") }
> db.findOneWorkingDemo.insertOne({"ClientId":3,"ClientName":"Robert","ClientAge":34});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c1896d78f205348bc64f") }

सभी डॉक्यूमेंट्स देखना

> db.findOneWorkingDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd7c1716d78f205348bc64d"), "ClientId" : 1, "ClientName" : "Larry", "ClientAge" : 26 }
{ "_id" : ObjectId("5cd7c17d6d78f205348bc64e"), "ClientId" : 2, "ClientName" : "Chris", "ClientAge" : 28 }
{ "_id" : ObjectId("5cd7c1896d78f205348bc64f"), "ClientId" : 3, "ClientName" : "Robert", "ClientAge" : 34 }

ObjectId के साथ findOne()

> db.findOneWorkingDemo.findOne({ "_id": ObjectId("5cd7c17d6d78f205348bc64e") });

आउटपुट:

{ "_id" : ObjectId("5cd7c17d6d78f205348bc64e"), "ClientId" : 2, "ClientName" : "Chris", "ClientAge" : 28 }

findOne() बनाम find()

मेथडरिटर्न्सउपयोग करें जब
findOne(query)एकल डॉक्यूमेंट या nullआप एक डॉक्यूमेंट की उम्मीद करते हैं (उदाहरण के लिए, _id द्वारा)
find(query)कर्सर (पुनरावृत्त करने योग्य)आप मल्टीपल परिणामों की उम्मीद करते हैं या पुनरावृति की आवश्यकता है
find(query).limit(1)कर्सर (अधिकतम 1 डॉक्यूमेंट)कर्सर नियंत्रण की आवश्यकता होने पर findOne() का विकल्प

ObjectId निर्माण

  • शेल में: ObjectId("hexString") या new ObjectId("hexString")।
  • ड्राइवर्स में: भाषा-विशिष्ट कंस्ट्रक्टर का उपयोग करें (उदाहरण के लिए, Node.js: new ObjectId("..."), Python: ObjectId("..."))।
  • ObjectId में एक एम्बेडेड टाइमस्टैम्प होता है: ObjectId("...").getTimestamp()।

मुख्य बिंदु

  • _id पर findOne() एकल डॉक्यूमेंट पुनर्प्राप्ति के लिए सबसे तेज़ तरीका है।
  • _id पर डिफ़ॉल्ट रूप से एक अद्वितीय इंडेक्स होता है, जिससे लुकअप O(1) होता है।
  • हमेशा पूर्ण 24-कैरेक्टर हेक्स स्ट्रिंग का उपयोग करें जब ObjectId को मैन्युअल रूप से निर्दिष्ट करें।
  1. - MongoDB Aggregation - Specific Field Value वाले Documents Fetch करना

    इसके लिए aggregate() का उपयोग करें। मान लें हमें field Age value 21 वाले documents fetch करने हैं। Collection बनाना > db.demo685.insertOne( ... { ... details: ... [ ... { Name:Chris, Age:21 }, ... { Name:David, Age:23 }, ... { Name:Bob, Age:21 } ... ] ... } ...

  1. - MongoDB में विशिष्ट एकाधिक दस्तावेज प्राप्त करें

    MongoDB में विशिष्ट एकाधिक दस्तावेज प्राप्त करने के लिए, $in का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo593.insertOne({id:1,Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e93177dfd2d90c177b5bcd9) } > db.demo593.insertOne({id:2,Name:John}); { acknowledged

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de