$ elemmatch(query)> クエリ条件に一致する行が少なくとも1つある場合、配列内のすべての行を返します。
$ elemMatch(projection) 射影として使用される場合、一致するすべての行の最初の行のみを返します。
配列集計演算子 $ filter 。
このシナリオでは、渡されたcrtieriaに基づいて製品の詳細がフィルタリングされます。
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"]
}
}
}
}
}])