Sử dụng ký pháp dấu chấm (dot notation) để truy cập mảng con. Tạo collection:
> 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") }
Hiển thị tất cả
> db.findDocumentDemo.find().pretty();
Tìm tài liệu có EmployeeDesignation = "Developer" VÀ Salary trong [45000, 105000]
> db.findDocumentDemo.find({
'EmployeeDetails.EmployeeAppraisalTime.EmployeeDesignation': 'Developer',
'EmployeeDetails.EmployeeAppraisalTime.Salary': { '$in': [45000, 105000] }
});
Kết quả (cả hai tài liệu đều khớp):
{
"_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}
]
}
}
Lưu ý: Truy vấn này khớp nếu ít nhất một phần tử trong mảng thỏa mãn cả hai điều kiện (Designation = Developer VÀ Salary trong danh sách).