Database
[{_id:"1",task:"task1",status:"pending",dayAged:"3"},{_id:"2",task:"task2",status:"waiting",dayAged:"1"},{_id:"3",task:"task3",status:"complete",dayAged:"3"},{_id:"4",task:"task4",status:"waiting",dayAged:"3"},{_id:"5",task:"task5",status:"pending",dayAged:"2"},{_id:"6",task:"task6",status:"pending",dayAged:"1"}]
Query
db.collection.aggregate([{$addFields:{statusWeight:{$switch:{branches:[{case:{$eq:["$status","waiting"]},then:0},{case:{$eq:["$status","pending"]},then:1}],default:2}}}},{$sort:{statusWeight:1,dayAged:-1}},{$project:{statusWeight:0}}])