Database

[{"customer":"WN","parameter":"category_a","locations":[{"city":"Elkana","category_a":11904.0,"category_b":74.0,"category_c":657.0,},{"city":"Haifa","category_a":20.0,"category_b":841.0,"category_c":0,}]},{"customer":"QKD","parameter":"category_b","locations":[{"city":"Tel Aviv","category_a":0,"category_b":22.0,"category_c":612.0}]}]

Query

db.collection.aggregate([{$addFields:{locations:{$map:{input:"$locations",as:"l",in:{$reduce:{input:{$objectToArray:"$$l"},initialValue:"$$l",in:{$cond:[{$eq:["$$this.k","$parameter"]},{$mergeObjects:["$$value",{category:"$$this.v"}]},"$$value"]}}}}}}}])

Result