গভীর নেস্টেড ডেটা থেকে ডকুমেন্ট ফিল্টার করা
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") ইনডেক্স দিন
সাব-ডকুমেন্টের মধ্যে সাব-ডকুমেন্ট থাকলে পথটি চেইন করে লিখলেই হয়।