Database
[{_time:ISODate("2022-03-22T00:00:00.000Z"),errors:[{api:"shipping",count:10},{api:"inventory",count:100}]},{_time:ISODate("2022-03-22T00:01:00.000Z"),errors:[{api:"shipping",count:20},{api:"inventory",count:200}]},{_time:ISODate("2022-03-22T00:02:00.000Z"),errors:[{api:"inventory",count:300}]},{_time:ISODate("2022-03-22T00:03:00.000Z"),errors:[{api:"inventory",count:400},{api:"account",count:1}]}]
Query
db.collection.aggregate([{$set:{truncTime:{$dateTrunc:{date:"$_time",unit:"minute",binSize:2}}}},{$unwind:"$errors"},{$group:{_id:{_time:"$truncTime",api:"$errors.api"},count:{$sum:"$errors.count"}}},{$group:{_id:"$_id._time",errors:{$push:{k:"$_id.api",v:"$count"}}}},{$replaceRoot:{newRoot:{$mergeObjects:["$$ROOT",{_time:"$_id"},{$arrayToObject:"$errors"}]}}},{$unset:["_id","errors"]}])