Database

[{"_id":1,"results":[{"status":"HOLD","footage":43.01,"pieces":1},{"status":"ACCEPTED","footage":80.90,"pieces":2},{"status":"REJECTED","footage":40.00,"pieces":1}]}]

Query

db.collection.aggregate([{"$addFields":{"results":{"$map":{"input":"$results","as":"r","in":[{k:{$concat:["$$r.status","_footage"]},v:"$$r.footage"},{k:{$concat:["$$r.status","_pieces"]},v:"$$r.pieces"}]}}}},{"$addFields":{"results":{"$reduce":{"input":"$results","initialValue":[],"in":{"$concatArrays":["$$value","$$this"]}}}}},{"$addFields":{"results":{"$arrayToObject":"$results"}}}])

Result