MongoDB-এ নেস্টেড অ্যারে অবজেক্টের ফিল্ডে কোয়েরি করতে ডট (.) নোটেশন ব্যবহার করা হয়। নিচে EmployeeAppraisalTime অ্যারেতে ডেভেলপার এবং নির্দিষ্ট স্যালারি রেঞ্জ দিয়ে খোঁজা দেখানো হয়েছে।
নমুনা ডেটা তৈরি
> db.findDocumentDemo.insertOne({
"EmployeeDetails": {
"EmployeeAppraisalTime": [
{"EmployeeDesignation": "Developer", "Salary": 45000},
{"EmployeeDesignation": "Tester", "Salary": 30000},
{"EmployeeDesignation": "HR", "Salary": 22000},
{"EmployeeDesignation": "Accountant", "Salary": 18000}
]
}
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2c0f7b64f4b851c3a13a8") }
> db.findDocumentDemo.insertOne({
"EmployeeDetails": {
"EmployeeAppraisalTime": [
{"EmployeeDesignation": "Developer", "Salary": 105000},
{"EmployeeDesignation": "Tester", "Salary": 45000},
{"EmployeeDesignation": "HR", "Salary": 34000},
{"EmployeeDesignation": "Accountant", "Salary": 24000}
]
}
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2c1d5b64f4b851c3a13a9") }
সব ডকুমেন্ট দেখুন
> db.findDocumentDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd2c0f7b64f4b851c3a13a8"),
"EmployeeDetails": {
"EmployeeAppraisalTime": [
{"EmployeeDesignation": "Developer", "Salary": 45000},
{"EmployeeDesignation": "Tester", "Salary": 30000},
{"EmployeeDesignation": "HR", "Salary": 22000},
{"EmployeeDesignation": "Accountant", "Salary": 18000}
]
}
}
{
"_id": ObjectId("5cd2c1d5b64f4b851c3a13a9"),
"EmployeeDetails": {
"EmployeeAppraisalTime": [
{"EmployeeDesignation": "Developer", "Salary": 105000},
{"EmployeeDesignation": "Tester", "Salary": 45000},
{"EmployeeDesignation": "HR", "Salary": 34000},
{"EmployeeDesignation": "Accountant", "Salary": 24000}
]
}
}
সাব-অ্যারেতে Designation=Developer এবং Salary 45000 বা 105000 থাকা ডকুমেন্ট খোঁজা
> db.findDocumentDemo.find({
'EmployeeDetails.EmployeeAppraisalTime.EmployeeDesignation': 'Developer',
'EmployeeDetails.EmployeeAppraisalTime.Salary': { '$in': [45000,105000] }
});
আউটপুট (দুটি ডকুমেন্টই মэтচ করেছে):
{
"_id": ObjectId("5cd2c0f7b64f4b851c3a13a8"),
"EmployeeDetails": {
"EmployeeAppraisalTime": [
{"EmployeeDesignation": "Developer", "Salary": 45000},
{"EmployeeDesignation": "Tester", "Salary": 30000},
{"EmployeeDesignation": "HR", "Salary": 22000},
{"EmployeeDesignation": "Accountant", "Salary": 18000}
]
}
}
{
"_id": ObjectId("5cd2c1d5b64f4b851c3a13a9"),
"EmployeeDetails": {
"EmployeeAppraisalTime": [
{"EmployeeDesignation": "Developer", "Salary": 105000},
{"EmployeeDesignation": "Tester", "Salary": 45000},
{"EmployeeDesignation": "HR", "Salary": 34000},
{"EmployeeDesignation": "Accountant", "Salary": 24000}
]
}
}
ব্যাখ্যা: ডট নোটেশন দিয়ে অ্যারেতে যেকোনো উপাদান মэтช করলে ডকুমেন্ট রিটার্ন হয়। $in দিয়ে একাধিক স্যালারি মান চেক করা হয়েছে।