$ elemmatch (truy vấn) trả về tất cả các hàng trong một mảng khi có ít nhất một hàng phù hợp với tiêu chí truy vấn.
$ elemMatch (phép chiếu) chỉ trả về hàng đầu tiên của tất cả các hàng phù hợp khi được sử dụng làm phép chiếu.
Bạn có thể dễ dàng lấy tất cả các hàng phù hợp bằng cách sử dụng toán tử tổng hợp mảng $ filter .
Trong trường hợp này, chi tiết sản phẩm sẽ được lọc dựa trên tiêu chuẩn đã vượt qua.
aggregate([{
$match: {
"project_code": 'usha-fos'
}
}, {
$project: {
"agency_code": 1,
"client_code": 1,
"project_code": 1,
"product_details": {
"$filter": {
"input": "$product_details",
"as": "result",
cond: {
$eq: ["$$result.Division", "Electric Fans"]
}
}
}
}
}])