Database

db={users:[{_id:"aaa",name:"John",department:1},{_id:"bbb",name:"Charles",department:1},{_id:"ccc",name:"Jessy",department:1},{_id:"ddd",name:"Tim",department:2},{_id:"eee",name:"Max",department:2},{_id:"fff",name:"Julia",department:2},{_id:"ggg",name:"Arnold",department:3}],departments:[{_id:1,name:"press",society:"times"},{_id:2,name:"news",society:"times"},{_id:3,name:"infos",society:"herald"}],society:[{name:"times",country:"England"},{name:"herald",country:"USA"}]}

Query

db.users.aggregate([{"$lookup":{"from":"departments","localField":"department","foreignField":"_id","pipeline":[{"$match":{"society":"times"/** input society*/}}],"as":"deptLookup"}},{"$match":{"$expr":{"$gt":[{"$size":"$deptLookup"},0]}}},{"$unset":"deptLookup"}])

Result