Database
[{timestamp:ISODate("2024-01-01"),type:"start"},{timestamp:ISODate("2024-01-02"),type:"log"},{timestamp:ISODate("2024-01-03"),type:"log"},{timestamp:ISODate("2024-01-04"),type:"log"},{timestamp:ISODate("2024-01-05"),type:"start"},{timestamp:ISODate("2024-01-06"),type:"log"},{timestamp:ISODate("2024-01-07"),type:"log"}]
Query
db.collection.aggregate([{$group:{_id:null,events:{$push:"$$ROOT"}}},{$project:{events:{$reduce:{input:{$sortArray:{input:"$events",sortBy:{timestamp:1}}},initialValue:[],in:{$concatArrays:["$$value",[{$mergeObjects:["$$this",{branch:{$cond:{if:{$eq:["$$this.type","start"]},then:{$ifNull:[{$add:[{$last:"$$value.branch"},1]},0]},else:{$last:"$$value.branch"}}}}]}]]}}}}},{$unwind:"$events"},{$group:{_id:"$events.branch",events:{$push:{timestamp:"$events.timestamp",type:"$events.type"}}}}])