Database
db={"A":[{"_id":1,"name":"a_1"},{"_id":2,"name":"a_2"},{"_id":3,"name":"a_3"}],"B":[{"_id":1,"name":"b_1","a_id":1},{"_id":2,"name":"b_2","a_id":1},{"_id":3,"name":"b_3","a_id":2},],"C":[{"_id":1,"name":"c_1","b_id":1},{"_id":2,"name":"c_2","b_id":1},{"_id":3,"name":"c_3","b_id":1},{"_id":4,"name":"c_4","b_id":2},{"_id":5,"name":"c_5","b_id":3},]}
Query
db.C.aggregate([{"$lookup":{"from":"B","localField":"b_id","foreignField":"_id","as":"b"}},{"$lookup":{"from":"A","localField":"b.a_id","foreignField":"_id","as":"a"}},{"$match":{"a._id":1}},{"$project":{"_id":1,"name":1}}])