Database

db={"costcode":[{"_id":ObjectId("6157ea69b0aef314f166dd2c"),"label":"Cost Code 1","description":"Some description","budgetedHours":100},{"_id":ObjectId("6157ea69b0aef314f166dd2d"),"label":"Cost Code 2","description":"Another description","budgetedHours":150},{"_id":ObjectId("6157ea69b0aef314f166dd2e"),"label":"Cost Code 3","description":"Another description again","budgetedHours":200}],"timesheet":[{"_id":ObjectId("6157eaa0b0aef314f166dd2e"),"costCodes":[{"costCode":ObjectId("6157ea69b0aef314f166dd2c"),"percentage":100,"hoursWorked":20},{"costCode":ObjectId("6157ea69b0aef314f166dd2d"),"percentage":100,"hoursWorked":30}],"startDateTimeUTC":ISODate("2022-01-01T00:00:00Z"),"endDateTimeUTC":ISODate("2022-01-07T23:59:59Z")},{"_id":ObjectId("6157eab7b0aef314f166dd2f"),"costCodes":[{"costCode":ObjectId("6157ea69b0aef314f166dd2c"),"percentage":100,"hoursWorked":33}],"startDateTimeUTC":ISODate("2022-01-08T00:00:00Z"),"endDateTimeUTC":ISODate("2022-01-14T23:59:59Z")},{"_id":ObjectId("6157ead0b0aef314f166dd30"),"costCodes":[{"costCode":ObjectId("6157ea69b0aef314f166dd2d"),"percentage":100,"hoursWorked":12}],"startDateTimeUTC":ISODate("2022-01-15T00:00:00Z"),"endDateTimeUTC":ISODate("2022-01-21T23:59:59Z")}]}

Query

db.costcode.aggregate([{$lookup:{from:"timesheet",localField:"_id",foreignField:"costCodes.costCode",as:"timesheets"}},{$unwind:"$timesheets"},{$unwind:"$timesheets.costCodes"},{$match:{$expr:{$eq:["$timesheets.costCodes.costCode","$_id"]}}},{$group:{_id:"$_id",label:{$first:"$label"},description:{$first:"$description"},budgetedHours:{$first:"$budgetedHours"},totalHoursWorked:{$sum:"$timesheets.costCodes.hoursWorked"}}}])

Result