Database
[{_id:1,value:"13 hr 30mins"},{_id:2,value:"25 hr"},{_id:3,value:"45mins"},{_id:4,value:"8hr 15 mins"},{_id:5,value:"8"}]
Query
db.collection.aggregate([{$set:{regexValue:{$regexFind:{input:"$value",regex:"^(?:(\\d+)\\s{0,1}hr){0,1}\\s*(?:(\\d+)\\s{0,1}mins){0,1}$"}}}},{$set:{value:{"$cond":{if:{$ne:["$regexValue",null]},then:{$round:[{$sum:[{$toInt:{$arrayElemAt:["$regexValue.captures",0]}},{$divide:[{$toInt:{$arrayElemAt:["$regexValue.captures",1]}},60]}]},2]},else:"$value"}}}},{$unset:"regexValue"}])