Database
db={"organisations":[{_id:"org1",name:"organisation one"}],"users":[{_id:"user1",name:"user one",organisation:"org1"},{_id:"user2",name:"user two",organisation:"org1"}],"projects":[{_id:"proj1",name:"project one",user:"user1"},{_id:"proj2",name:"project two",user:"user2"}]}
Query
db.users.aggregate([{$match:{_id:"user1"}},{$lookup:{from:"users",localField:"organisation",foreignField:"organisation",as:"users_of_org"}},{$lookup:{from:"projects",localField:"users_of_org._id",foreignField:"user",as:"projects"}},{$unset:["organisation","users_of_org"]},{$unwind:"$projects"},{$replaceWith:"$projects"}])