Database
[{"category":"task","configuration":{"task":{"65d65978521ed95587ff6758":{"disabled":true,"value":"Test"}},"client":{"65d68b6266b8c54b4936a09f":{"disabled":true}}},"templateArray":[{"k":"task","v":{disabled:false,value:"Test #5"}},{"k":"client","v":{disabled:false,value:"bar"}}]}]
Query
db.collection.aggregate([{$addFields:{foo:{"$objectToArray":"$configuration[$category]"}}},{$addFields:{merged:{$map:{input:"$templateArray",as:"template",in:{k:"$$template.k",v:{_id:"$$template.v._id",name:"$$template.v.name",category:"$$template.v.category",properties:{$map:{input:"$$template.v.properties",as:"property",in:{$mergeObjects:["$$property",{$arrayElemAt:[{$filter:{input:{$objectToArray:"$configuration[$$template.k]"},as:"config",cond:{$eq:[{$toObjectId:"$$config.k"},"$$property._id"]}}},-1]}]}}}}}}}}},{$project:{foo:1,merged:1}}])