Sử dụng toán tử $elemMatch để tìm document chứa phần tử mảng thỏa mãn nhiều điều kiện cùng lúc.
Tạo collection với document:
> db.getMatchingDocumentDemo.insertOne(
{
_id: 1,
"UserDetails": [ { "UserName": "John", "UserAge": 23 } ]
}
); { "acknowledged" : true, "insertedId" : 1 }
> db.getMatchingDocumentDemo.insertOne(
{ _id: 2, "UserDetails": [ { "UserName": "Larry", "UserAge": 24 } ] }
); { "acknowledged" : true, "insertedId" : 2 }
Hiển thị tất cả document:
> db.getMatchingDocumentDemo.find().pretty();
Kết quả:
{ "_id" : 1, "UserDetails" : [ { "UserName" : "John", "UserAge" : 23 } ] }
{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }
Truy vấn tìm document có phần tử trong mảng UserDetails thỏa mãn UserAge = 24:
> db.getMatchingDocumentDemo.find({ UserDetails: { $elemMatch: { UserAge: 24 } } });
Kết quả (chỉ trả về document _id: 2):
{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }