Database
db={"coll1":[/**collection 1 item example:*/{_id:ObjectId("000000000000000000000000"),trips:[/** first array*/{/** trip 1*/details:[/** array in first array*/{/** detail 1*/key:ObjectId("000000000000000000000111")/** ==> _id i want aggregate*/}]}]}],"coll2":[/**collection 2 item exampe:*/{_id:ObjectId("000000000000000000000111"),description:"any info here..."}]}
Query
db.coll1.aggregate([{"$match":{_id:ObjectId("000000000000000000000000")}},{"$lookup":{"from":"coll2","localField":"trips.details.key","foreignField":"_id","as":"coll2"}},{"$set":{"trips":{"$map":{"input":"$trips","as":"trip","in":{"$mergeObjects":["$$trip",{"details":{"$map":{"input":"$$trip.details","as":"detail","in":{"$mergeObjects":["$$detail",{"_description_obj":{"$first":{"$filter":{"input":"$coll2","cond":{"$eq":["$$this._id","$$detail.key"]}}}}}]}}}}]}}},"coll2":"$$REMOVE"}}])