Database

[{"_id":"1","subject":"AA0001","metrics":{"m001":40.8,"m002":58.8,"m003":-5.0,"m004":70.2}},{"_id":"2","subject":"BB0002","metrics":{"m001":-10.5,"m002":65.4,"m003":-15.7}},{"_id":"3","subject":"CC0003","metrics":{"m001":50.1,"m002":-6.3,"m003":85.0,"m004":-3.9}}]

Query

db.collection.aggregate([{$addFields:{metrics:{$map:{input:{$objectToArray:"$metrics"},in:{k:"$$this.k",v:{$cond:[{$gte:["$$this.v",0]},"$$this.v","NA"]}}}}}},{$addFields:{metrics:{$arrayToObject:"$metrics"}}}])

Result