Database

[{"_id":"1","type":"start","datetime":"2022-02-01T10:15Z","userId":"1"},{"_id":"2","type":"end","datetime":"2022-02-01T10:20Z","userId":"1"},{"_id":"3","type":"start","datetime":"2022-02-01T10:16Z","userId":"2"},{"_id":"4","type":"end","datetime":"2022-02-01T10:21Z","userId":"2"},{"_id":"5","type":"start","datetime":"2022-02-02T11:01Z","userId":"1"},{"_id":"6","type":"end","datetime":"2022-02-02T11:02Z","userId":"1"}]

Query

db.collection.aggregate([{$sort:{"datetime":1}},{$project:{"d":{k:"$type",v:"$datetime"},userId:1}},{$group:{_id:"$userId",e:{$push:"$d"}}},{$addFields:{e:{$map:{input:{$range:[0,{$size:"$e"},2]},as:"index",in:{$slice:["$e","$$index",2]}}}}},{$unwind:"$e"},{$project:{events:{"$arrayToObject":"$e"}}},{$project:{userId:"$_id",start_at:"$events.start",end_at:"$events.end",_id:0}}])

Result