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.society.aggregate([{"$match":{"name":"times"}},{"$lookup":{"from":"departments","localField":"name","foreignField":"society","as":"dept_society"}},{"$lookup":{"from":"users","localField":"dept_society._id","foreignField":"department","as":"user_dept"}}])

Result