Database

[{_id:1,createdBy:"John",duration:"00:30"},{_id:2,createdBy:"John",duration:"01:30"},{_id:3,createdBy:"Mark",duration:"00:30"}]

Query

db.collection.aggregate([{$match:{}},{$set:{minutes:{$let:{vars:{time:{$split:["$duration",":"]}},in:{"$add":[{"$multiply":[{$toInt:{$first:"$$time"}},60]},{$toInt:{$last:"$$time"}}]}}}}},{$group:{"_id":"$createdBy","totalMinutes":{"$sum":"$minutes"}}},{$group:{"_id":null,"docs":{"$push":"$$ROOT"}}},{$set:{"docs":{$map:{"input":["John","Mark","Rikio"],"as":"name","in":{$let:{vars:{findName:{"$first":{"$filter":{"input":"$docs","as":"d","cond":{"$eq":["$$d._id","$$name"]}}}}},in:{"$cond":{"if":"$$findName","then":"$$findName","else":{_id:"$$name",totalMinutes:0}}}}}}}}},{$unwind:"$docs"},{$replaceRoot:{"newRoot":"$docs"}},{$set:{"hours":{$floor:{"$divide":["$totalMinutes",60]}},"minutes":{"$mod":["$totalMinutes",60]}}},{$set:{"hours":{"$cond":{"if":{"$lt":["$hours",10]},"then":{"$concat":["0",{"$toString":"$hours"}]},"else":{"$toString":"$hours"}}},"minutes":{"$cond":{"if":{"$lt":["$minutes",10]},"then":{"$concat":["0",{"$toString":"$minutes"}]},"else":{"$toString":"$minutes"}}}}},{$project:{duration:{"$concat":["$hours",":","$minutes"]}}}])

Result