Database

[{"_id":ObjectId("5fce46ca6ac9808276dfeb8c"),"year":2018,"datum":[{"StatusCode":"A","Type":"1","Amount":NumberDecimal("100"),"Date":ISODate("2018-05-30T00:46:12.784Z")},{"StatusCode":"A","Type":"1","Amount":NumberDecimal("300"),"Date":ISODate("2023-05-30T00:46:12.784Z")},{"StatusCode":"A","Type":"2","Amount":NumberDecimal("420"),"Date":ISODate("2032-05-30T00:46:12.784Z")},{"StatusCode":"B","Type":"2","Amount":NumberDecimal("420"),"Date":ISODate("2032-05-30T00:46:12.784Z")}]}]

Query

db.collection.aggregate([{"$unwind":{path:"$datum",preserveNullAndEmptyArrays:true}},{$match:{"datum.StatusCode":{$in:["A"]}}},{$sort:{_id:1,year:1,"datum.Type":1,"datum.Date":1}},{$group:{_id:{_id:"$_id",year:"$year",type:"$datum.Type"},datum:{"$last":"$datum"}}},{"$group":{"_id":{_id:"$_id._id",year:"$_id.year"},total:{$sum:"$datum.Amount"}}}])

Result