$elemmatch(query) връща всички редове в масив, когато има поне един ред, отговарящ на критериите на заявката.
$elemMatch(проекция) връща само първия ред от всички съответстващи редове, когато се използва като проекция.
Можете лесно да получите всички съвпадащи редове, като използвате оператора за агрегиране на масив $filter .
В този сценарий подробностите за продукта ще бъдат филтрирани въз основа на предадените критерии.
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"]
}
}
}
}
}])