Database

db={"Collection_A":[{"_id":1,"key_A":"value_a1"}],"Collection_B":[{"_id":10,"id_A":1,"key_B":"value_b1"},{"_id":11,"id_A":1,"key_B":"value_b2"}],"Collection_C":[{"_id":100,"id_B":10,"key_C":"value_c1"},{"_id":101,"id_B":10,"key_C":"value_c2"},{"_id":102,"id_B":11,"key_C":"value_c3"},{"_id":103,"id_B":11,"key_C":"value_c4"}]}

Query

db.Collection_A.aggregate([{"$graphLookup":{"from":"Collection_B","startWith":"$_id","connectFromField":"_id","connectToField":"id_A","as":"children_A"}},{"$graphLookup":{"from":"Collection_C","startWith":"$children_A._id","connectFromField":"children_A._id","connectToField":"id_B","as":"children_B"}}])

Result