Database
[{_id:"someId",class:"ClassA1",data:[{first:"John",second:"David",age:21,score:1,},{first:"John",second:"David",age:21,score:1,},{first:"John",second:"David",age:21,score:1,},{first:"John",second:"David",age:21,score:1,},{first:"Alex",second:"Smith",age:22,score:1,},{first:"Alex",second:"Smith",age:22,score:1,},{first:"Alex",second:"Smith",age:22,score:1,},{first:"Alex",second:"Smith",age:22,score:1,},]}]
Query
db.collection.aggregate([{$match:{class:"ClassA1",},},{"$project":{_id:0,class:1,data:{"$function":{"body":"function (data) { const map = {}; data = data.map((item) => { if (map[item.age]) map[item.age].score += item.score; else { map[item.age] = item; return item; } }); return data.filter((item) => item !== undefined); }","args":["$data"],"lang":"js"}}}}])