Database

db={items:[{_id:"1",name:"A",description:"Some description 1"},{_id:"2",name:"B",description:"Some description 2"},{_id:"3",name:"C",description:"Some description 3"},{_id:"4",name:"D",description:"Some description 4"},],cItems:[{_id:"1",itemId:"1",items:[{itemId:"2",qty:4},{itemId:"3",qty:5}]},{_id:"2",itemId:"4",items:[{itemId:"2",qty:1},{itemId:"3",qty:1}]},]}

Query

db.cItems.aggregate([{$match:{_id:{$eq:"1"}}},{$lookup:{from:"items",localField:"itemId",foreignField:"_id",as:"parentItem"}},{"$unwind":"$items"},{$lookup:{from:"items",let:{itemId:"$items.itemId",items:"$items"},pipeline:[{$match:{$expr:{$eq:["$_id","$$itemId"]}}},{$replaceRoot:{newRoot:{$mergeObjects:["$$items","$$ROOT"]}}},{$project:{qty:1,name:1,description:1}}],as:"items"}},{$group:{_id:"$_id",items:{$push:{$first:"$items"}},name:{$first:{"$arrayElemAt":["$parentItem.name",0]}},description:{$first:{"$arrayElemAt":["$parentItem.description",0]}}}}])

Result