Database

db={"collection1":[{"_id":1,"name":"Collection 1:1","collection_2_ids":[5,6]},{"_id":2,"name":"Collection 1:2","collection_2_ids":[8,9]}],"collection2":[{"_id":5,"name":"collection 2:5","collection_1_id":1,"collection_3_id":12},{"_id":6,"name":"collection 2:6","collection_1_id":1,"collection_3_id":13},{"_id":8,"name":"collection 2:8","collection_1_id":2,"collection_3_id":14},{"_id":9,"name":"collection 2:9","collection_1_id":2,"collection_3_id":15},],"collection3":[{"_id":12,"name":"collection 3:12"},{"_id":13,"name":"collection 3:13"},{"_id":14,"name":"collection 3:14"},{"_id":15,"name":"collection 3:15"}]}

Query

db.collection1.aggregate([{"$lookup":{"from":"collection2","let":{"sourceCollection_2_ids":"$collection_2_ids"},"pipeline":[{"$match":{"$expr":{"$in":["$_id","$$sourceCollection_2_ids"]}}},{"$lookup":{"from":"collection3","let":{"sourceCollection_3_id":"$collection_3_id"},"pipeline":[{"$match":{"$expr":{"$eq":["$_id","$$sourceCollection_3_id"]},}},],"as":"collection_3_document"}},{"$set":{"collection_3_document":{"$arrayElemAt":["$collection_3_document",0]}}},],"as":"collection_2_documents"}},])

Result