কম্পিউটার টিউটোরিয়াল

MongoDB-এ নেস্টেড সাব-ডেটা অ্যাক্সেস করে নির্দিষ্ট ডকুমেন্ট খুঁজে বের করা


গভীর নেস্টেড ডেটা থেকে ডকুমেন্ট ফিল্টার করা

MongoDB-এ গভীর নেস্টেড অবজেক্টের ফিল্ড অনুযায়ী ডকুমেন্ট খুঁজে বের করতে ডট নোটেশন (Information.StudentDetails.StudentName) ব্যবহার করা হয়।

নমুনা ডেটা তৈরি

> db.demo450.insertOne({ "Information": { "StudentDetails": { "StudentName": "Chris", "StudentAge": 21 }}})
> db.demo450.insertOne({ "Information": { "StudentDetails": { "StudentName": "David", "StudentAge": 23 }}})
> db.demo450.insertOne({ "Information": { "StudentDetails": { "StudentName": "Mike", "StudentAge": 22 }}})

সমস্ত ডকুমেন্ট দেখানো

> db.demo450.find()

আউটপুট:

{ "_id": ObjectId("..."), "Information": { "StudentDetails": { "StudentName": "Chris", "StudentAge": 21 } } }
{ "_id": ObjectId("..."), "Information": { "StudentDetails": { "StudentName": "David", "StudentAge": 23 } } }
{ "_id": ObjectId("..."), "Information": { "StudentDetails": { "StudentName": "Mike", "StudentAge": 22 } } }

নেস্টেড ফিল্ড দিয়ে খোঁজার কোয়েরি

> db.demo450.find({ "Information.StudentDetails.StudentName": "David" })

ফলাফল:

{ "_id": ObjectId("..."), "Information": { "StudentDetails": { "StudentName": "David", "StudentAge": 23 } } }

ব্যাখ্যা

  • ডট নোটেশন (.) ব্যবহার করে যেকোনো গভীর নেস্টেড ফিল্ডে কোয়েরি করা যায়
  • এই পদ্ধতিতে আলাদা কোনো অপারেটর (যেমন $elemMatch) দরকার নয় যখন পথ নির্দিষ্ট থাকে
  • ইনডেক্স তৈরি করতে চাইলে একই পথে ("Information.StudentDetails.StudentName") ইনডেক্স দিন

সাব-ডকুমেন্টের মধ্যে সাব-ডকুমেন্ট থাকলে পথটি চেইন করে লিখলেই হয়।

  1. MongoDB-এ ডকুমেন্টের ফিল্ড এক্সেস করা (find() মেথড)

  2. MongoDB-এ ডকুমেন্ট থেকে ইমেইল আইডি বের করে print() দিয়ে দেখানো

  3. MongoDB-তে ডকুমেন্ট এবং সাব-ডকুমেন্ট উদাহরণ ও আপডেট

  4. MongoDB 4-এ ডকুমেন্ট সর্ট করে শুধু একটি ফিল্ড দেখানো