$elemmatch(query) restituisce tutte le righe in una matrice quando è presente almeno una riga che corrisponde ai criteri della query.
$elemMatch(projection) restituisce solo la prima riga di tutte le righe corrispondenti quando viene utilizzata come proiezione.
Puoi facilmente ottenere tutte le righe corrispondenti utilizzando l'operatore di aggregazione di array $filtro .
In questo scenario, i dettagli del prodotto verranno filtrati in base ai criteri passati.
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"]
}
}
}
}
}])