$elemmatch(consulta) devuelve todas las filas de una matriz cuando hay al menos una fila que coincide con los criterios de consulta.
$elemMatch(proyección) devuelve solo la primera fila de todas las filas coincidentes cuando se usa como proyección.
Puede obtener fácilmente todas las filas coincidentes utilizando el operador de agregación de matrices $filtro .
En este escenario, los detalles del producto se filtrarán en función de los criterios aprobados.
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"]
}
}
}
}
}])