$elemmatch(query) returnerer alle rækker i et array, når der er mindst én række, der matcher forespørgselskriterierne.
$elemMatch(projektion) returnerer kun den første række af alle de matchende rækker, når den bruges som projektion.
Du kan nemt få alle matchende rækker ved at bruge array aggregation operator $filter .
I dette scenarie vil produktdetaljer blive filtreret ud fra de beståede kriterier.
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"]
}
}
}
}
}])