Database
[{_id:"abc*hello*today*123","value":123},{_id:"abc*hello*today*999","value":999},{_id:"xyz*hello*tomorrow*123","value":123}]
Query
db.collection.aggregate([{$set:{firstPart:{$getField:{field:"match",input:{$regexFind:{input:"$_id",regex:".*(?=\\*\\d+)"}}}}}},{$group:{_id:"$firstPart",results:{$push:"$$ROOT"}}},{$unset:"results.firstPart"}])