Database

[{"Id":1,"Name":"Test 1","Time":{"start":"22:00","end":"22:30","duration":30}},{"Id":2,"Name":"Test 2","Time":{"start":"22:05","end":"22:35","duration":30}},{"Id":3,"Name":"Test 3","Time":{"start":"23:25","end":"23:40","duration":15}},{"Id":4,"Name":"Test 4","Time":{"start":"22:15","end":"22:50","duration":15}}]

Query

db.collection.aggregate([{$addFields:{startHour:{$arrayElemAt:[{$split:["$Time.start",":"]},0]}}},{$group:{_id:"$startHour",Name:{$push:"$Name"}}}])

Result