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:{api:"$_id.api",count:"$count"}}}},{$project:{_id:0,_time:"$_id",errors:1}}])

Result