Database
db={"colA":[{_id:123,name:"A",amount:2,some_other_information:"ttt"},{_id:223,name:"B",amount:2,some_other_information:"ggg"}],"colB":[{_id:123,name:"K",amount:2,some_other_information:"fff"},{_id:2,name:"L",amount:2,some_other_information:"vvv"}],"colD":[{_id:123,name:"test",items:[{_id:1,a_id:123,b_id:1,c_id:123},{_id:2,a_id:223,b_id:2,c_id:223},{_id:3,a_id:345,b_id:3}]}]}
Query
db.colD.aggregate([{$lookup:{from:"colA",localField:"items.a_id",foreignField:"_id",as:"a_items"}},{$lookup:{from:"colB",localField:"items.b_id",foreignField:"_id",as:"b_items"}},{$project:{_id:1,name:1,items:{$map:{input:"$items",as:"i",in:{_id:"$$i._id",a:{$arrayElemAt:[{$filter:{input:"$a_items",cond:{$eq:["$$this._id","$$i.a_id"]}}},0]},b:{$arrayElemAt:[{$filter:{input:"$b_items",cond:{$eq:["$$this._id","$$i.b_id"]}}},0]}}}}}}])