Database

[{"profession":{"organization":"bank","city":"NY"}},{"profession":{"organization":"bank2","city":"NY"}},{"profession":{"organization":"bank","city":"LA"}}]

Query

db.collection.aggregate([{$match:{$and:[{$or:[{"profession.organization":"bank"},{"profession.city":"NY"}]},{$or:[{"profession.organization":"bank","profession.city":{$ne:"NY"}},{"profession.organization":{$ne:"bank"},"profession.city":"NY"}]}]}},{$sample:{size:1}}])

Result