MongoDB-এ অ্যারে অবজেক্টের মধ্যে নির্দিষ্ট শর্ত মэтช করা এলিমেন্ট মাত্র প্রজেক্ট (রিটার্ন) করতে পজিশনাল $ অপারেটর ব্যবহার করা হয়।
নমুনা ডেটা তৈরি (CustomerPurchaseDescription অ্যারে)
> db.getASpecificObjectDemo.insertOne({
_id: 1,
"CustomerName": "Larry",
"CustomerDetails": {
"CustomerPurchaseDescription": [
{"id": 100, "ProductName": "Product-1", "Amount": 10000},
{"id": 101, "ProductName": "Product-2", "Amount": 10500},
{"id": 102, "ProductName": "Product-3", "Amount": 10200}
]
}
});
{ "acknowledged": true, "insertedId": 1 }
ডকুমেন্ট দেখুন
> db.getASpecificObjectDemo.find().pretty();আউটপুট:
{
"_id": 1,
"CustomerName": "Larry",
"CustomerDetails": {
"CustomerPurchaseDescription": [
{"id": 100, "ProductName": "Product-1", "Amount": 10000},
{"id": 101, "ProductName": "Product-2", "Amount": 10500},
{"id": 102, "ProductName": "Product-3", "Amount": 10200}
]
}
}
id = 101 থাকা এলিমেন্ট মাত্র প্রজেক্ট করা (পজিশনাল $)
> db.getASpecificObjectDemo.find(
{_id: 1, "CustomerDetails.CustomerPurchaseDescription.id": 101},
{_id: 0, "CustomerDetails.CustomerPurchaseDescription.$": 1}
);
আউটপুট (শুধু id 101 वाला এলিমেন্ট):
{
"CustomerDetails": {
"CustomerPurchaseDescription": [
{"id": 101, "ProductName": "Product-2", "Amount": 10500}
]
}
}
ব্যাখ্যা: কোয়েরিতে "CustomerDetails.CustomerPurchaseDescription.id": 101 দিয়ে কোন এলিমেন্ট মэтচ করল সেটি পজিশনাল $ দিয়ে প্রজেকশনে রিটার্ন করা হয়েছে। _id: 0 দিয়ে _id বাদ দেওয়া হয়েছে।