Database

[{"name":"star1","active":1,"address":[{"id":1,"city":"newyork"},{"id":2,"city":"sydney"}]},{"name":"star2","active":2,"address":[{"id":1,"city":"newyork"},{"id":2,"city":"london"}]},{"name":"star3","active":3,"address":[{"id":1,"city":"newyork"},{"id":2,"city":"london"}]},{"name":"star4","active":4,"address":[{"city":"newyork","id":4,},{"id":5,"city":"london"}]}]

Query

db.collection.aggregate([{$match:{$expr:{$or:[{"$in":[{id:"$active",city:"newyork"},"$address"]},{"$in":[{city:"newyork",id:"$active"},"$address"]}]}}}])

Result