MongoDB-এ এম্বেডেড ডকুমেন্ট (নেস্টেড অবজেক্ট) এর ফিল্ডে কোয়েরি করতে ডট (.) নোটেশন ব্যবহার করা হয়।
নমুনা ডেটা তৈরি (CustomerDetails অ্যারে অবজেক্ট)
> db.embeddedDocumentDemo.insertOne({
"CustomerDetails": [
{"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
{"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
{"CustomerName": "David", "CustomerPurchasePrice": 1000}
]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd32347edc6604c74817ccd") }
ডকুমেন্ট দেখুন
> db.embeddedDocumentDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd32347edc6604c74817ccd"),
"CustomerDetails": [
{"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
{"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
{"CustomerName": "David", "CustomerPurchasePrice": 1000}
]
}
CustomerPurchasePrice = 4500 থাকা ডকুমেন্ট খোঁজা
> db.embeddedDocumentDemo.find({"CustomerDetails.CustomerPurchasePrice": 4500});
আউটপুট (পুরো ডকুমেন্ট রিটার্ন হয়, শুধু মেলে অ্যারে এলিমেন্ট নয়):
{
"_id": ObjectId("5cd32347edc6604c74817ccd"),
"CustomerDetails": [
{"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
{"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
{"CustomerName": "David", "CustomerPurchasePrice": 1000}
]
}
গুরুত্বপূর্ণ: find() পুরো ডকুমেন্ট রিটার্ন করে। শুধু মেলে সাব-ডকুমেন্ট পাওয়ার জন্য $elemMatch বা অ্যাগ্রিগেশন ($unwind, $match) ব্যবহার করুন।