I have a collection from which I need specific obj e.g. notes.blok2 and notes.curse5 as an object, not as an array
{
  "year":2020,
  "grade":4,
  "seccion":"A",
    "id": 100,
  "name": "pedro",
  "notes":[{"curse":5, 
          "block":1, 
          "score":{ "a1": 5,"a2": 10, "a3": 15} 
          },{"curse":5, 
          "block":2, 
          "score":{ "b1": 10,"b2": 20, "b3": 30} 
          }
   ]
}
My query
notas.find({
"$and":[{"grade":1},{"seccion":"A"},{"year":2020}]},
{"projection":{ "grade":1, "seccion":1,"name":1,"id":1,
"notes":{"$elemMatch":{"block":2,"curse":5}},"notes.score":1} })
It works but returns notes like array
{
  "_id": "55",
  "id": 100,
  "grade": 5,
  "name": "pedro",
  "seccion": "A",
  "notes": [
    {"score": { "b1": 10,"b2": 20, "b3": 30} }
  ]
}
But I NEED LIKE THIS: score at the same level as others and if doesn't exist show empty "score":{}
{
  "year":2020,
  "grade":5,
  "seccion":"A",
    "id": 100,
  "name": "pedro",
  "score":{ "b1": 10,"b2": 20, "b3": 30} 
}