Database

[{"productProperties":[{"productId":"1","productProperty":"AAA"},{"productId":"2","productProperty":"BBB"},{"productId":"3","productProperty":"CCC"}],"productRelations":[{"productId":"1","relatedProducts":[{"productId":"2","relationProperty":222},{"productId":"3","relationProperty":333}]},{"productId":"2","relatedProducts":[{"productId":"1","relationProperty":111}]}]}]

Query

db.collection.aggregate([{$project:{productRelations:{$map:{input:"$productRelations",as:"pr",in:{productId:"$$pr.productId",productProperty:{$let:{vars:{match:{$arrayElemAt:[{$filter:{input:"$productProperties",cond:{$eq:["$$pr.productId","$$this.productId"]}}},0]}},in:"$$match.productProperty"}},relatedProducts:{$map:{input:"$$pr.relatedProducts",as:"rp",in:{productId:"$$rp.productId",relationProperty:"$$rp.relationProperty",productProperty:{$let:{vars:{match:{$arrayElemAt:[{$filter:{input:"$productProperties",cond:{$eq:["$$rp.productId","$$this.productId"]}}},0]}},in:"$$match.productProperty"}}}}}}}}}},{$unwind:"$productRelations"},{$replaceRoot:{newRoot:"$productRelations"}}])

Result