Database

db={support:[{title:"Support",instructions:[{image:"image-id-string-one"},{image:"image-id-string-two"},{image:"image-id-string-three"}]}],images:[{id:"image-id-string-one",image:"actual-image-one"},{id:"image-id-string-two",image:"actual-image-two"},{id:"image-id-string-three",image:"actual-image-three"}]}

Query

db.support.aggregate([{"$match":{"title":"Support"}},/** Let's say we match on title and expect only one record from above match*/{"$unwind":"$instructions"},{"$lookup":{"from":"images","localField":"instructions.image","foreignField":"id","as":"images"}},{"$unwind":"$images"},{"$set":{"instructions.image":"$images.image"}},/** Remove images array artifact from lookup from object.*/{"$unset":["images"]},{$group:{_id:"$_id",doc:{$first:"$$ROOT"},instructions:{$push:"$instructions"}}},{$replaceRoot:{newRoot:{"$mergeObjects":["$doc",{instructions:"$instructions"}]}}}])

Result