Database

[{"_id":13965,"name":"p 1","sort_order":0,"quantity":5},{"_id":8000,"name":"p 4","sort_order":500,"quantity":-10},{"_id":13980,"name":"p 2","sort_order":50,"quantity":2},{"_id":9753,"name":"p 5","sort_order":0,"quantity":0},{"_id":2000,"name":"p 3","sort_order":6,"quantity":1},{"_id":65230,"name":"p 6","sort_order":20,"quantity":0}]

Query

db.collection.aggregate([{"$facet":{"lteZero":[{$match:{$expr:{$lte:["$quantity",0]}}},{$sort:{sort_order:-1,quantity:1}}],"gtZero":[{$match:{$expr:{$gt:["$quantity",0]}}},{$sort:{sort_order:-1,quantity:1}}]}},{"$project":{combined:{"$concatArrays":["$gtZero","$lteZero"]}}},{"$unwind":"$combined"},{"$replaceRoot":{"newRoot":"$combined"}}])

Result