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([{$addFields:{sortQuantity:{$cond:[{$lt:["$quantity",0]},0,1]}}},{$sort:{sortQuantity:1,sort_order:1}},{$unset:"sortQuantity"}])

Result