Database
[/** group 1*/{"_id":ObjectId("6347e5aa0c009a37b81da700"),"groupId":1,"testField1":"1000","testField2":"2000","testField3":NumberInt(1)},{"_id":ObjectId("6347e5890c009a37b81da701"),"groupId":1,"testField2":2000,"testField3":NumberInt(2)},{"_id":ObjectId("6347e5960c009a37b81da702"),"groupId":1,"testField3":NumberInt(3)},/**group 2*/{"_id":ObjectId("6347e5aa0c009a37b81da703"),"groupId":2,"testField1":"1000","testField2":"2000","testField3":NumberInt(1)},{"_id":ObjectId("6347e5890c009a37b81da704"),"groupId":2,"testField2":2000,"testField3":NumberInt(2)},{"_id":ObjectId("6347e5960c009a37b81da705"),"groupId":2,"testField3":NumberInt(3)}]
Query
db.collection.aggregate([{$match:{testField1:"1000",testField2:"2000"}},{"$addFields":{sortOrder:1}},{"$unionWith":{"coll":"collection","pipeline":[{$match:{testField2:"2000"}},{"$addFields":{sortOrder:2}}]}},{"$unionWith":{"coll":"collection","pipeline":[{$match:{testField1:{$exists:false},testField2:{$exists:false}}},{"$addFields":{sortOrder:3}},]}},{$sort:{sortOrder:1}},{$limit:1},{"$unset":"sortOrder"}])