Sử dụng $elemMatch trong projection
Toán tử $elemMatch trong phần projection của find() chỉ trả về phần tử đầu tiên trong mảng khớp điều kiện.
Dữ liệu mẫu
> db.demo763.insertOne({
_id: 1,
CountryName: "US",
studentInformation: [
{ StudentName: "Chris" },
{ StudentName: "David", StudentAge: 22 }
]
});
Truy vấn: chỉ lấy phần tử có StudentAge tồn tại
db.demo763.find(
{},
{
studentInformation: {
$elemMatch: {
StudentAge: { $exists: true }
}
}
}
);
Kết quả
{ "_id": 1, "studentInformation": [{ "StudentName": "David", "StudentAge": 22 }] }
Chỉ phần tử có trường StudentAge được trả về trong mảng studentInformation.