Database

[{"collection":"MyCollection","count":100,"content":{"_id":{"type":"autoincrement","autoType":"int","startInt":0},"job":{"type":"enum","values":["professor","administrator","teaching assistant"]}}},{"collection":"otherCollection","count":100,"content":{"_id":{"type":"autoincrement","autoType":"int","startInt":0},"location":{"type":"object","objectContent":{"type":{"type":"constant","constVal":"Point"},"coordinates":{"type":"coordinates"}}}},"indexes":[{"name":"location","key":{"location":"2dsphere"}}]}]

Query

db.otherCollection.aggregate([{"$geoNear":{"near":{"type":"Point","coordinates":[-46.0,-68.0]},"maxDistance":2000000,"distanceField":"dist.calculated"}},{"$lookup":{"from":"MyCollection","localField":"_id","foreignField":"_id","pipeline":[{"$match":{"job":"professor"}}],"as":"nearProfs"}},{"$match":{"$expr":{"$gt":[{"$size":"$nearProfs"},0]}}}])

Result