Database

db={"col1":[{_id:"5fed222d806311ec81d6df23",matches:[{_id:"5fed222d806311ec81d6daf3",user:"5fed222d806311ec81d6dcf3",probability:10},{_id:"5fed222d806311ec81d6d1f3",user:"5fed222d806311ec81d62cf3",probability:20},]}],"user":[{_id:"5fed222d806311ec81d6dcf3",firstName:"Max",lastName:"Mustermann",password:"test",expenses:[{_id:1,price:50},{_id:2,price:50},]},{_id:"5fed222d806311ec81d62cf3",firstName:"Herbert",lastName:"Mustermann",password:"test2",expenses:[{_id:3,price:75},{_id:4,price:125},]}]}

Query

db.col1.aggregate([{$unwind:"$matches"},{"$lookup":{"from":"user",let:{userId:"$matches.user"},pipeline:[{$match:{$expr:{$eq:["$_id","$$userId"]}}},{$project:{_id:0,firstName:1,lastName:1,totalExpenses:{$sum:"$expenses.price"}}}],"as":"matches.user"}},{$unwind:"$matches.user"},{$group:{_id:"$_id",matches:{$push:"$matches"}}}])

Result