Database

[{"final":[{"key":"TP-1","status_map":[{"status":"Closed","final":["a","b"]},{"status":"Done","final":["c","d"]}]},{"key":"TP-2","status_map":[{"status":"Closed","final":["x","y"]}]}],"start":[{"key":"TP-1","status_map":[{"status":"Closed","start":["h"]},{"status":"Done","start":["a"]}]},{"key":"TP-2","status_map":[{"status":"Done","start":["l","m"]}]}]}]/** {*//** "data": [*//** {*//** "key": "TP-1",*//** "status_map": [*//** { "status": "Closed","final": ["a","b"],"start":["h"]},*//** { "status": "Done","final": ["c","d"],"start":["a"]}*//** ]*//** },*//** {*//** "key": "TP-2",*//** "status_map": [*//** { "status": "Closed", "final":[ "x","y"],"start": []},*//** { "status": "Done", "final": [ ],"start": [ "l","m"]}*//** ]*//** }*//** ]*//** }*/

Query

db.collection.aggregate([{$project:{all:{$concatArrays:["$final","$start"]}}},{$unwind:"$all"},{$unwind:"$all.status_map"},{$group:{_id:{_id:"$_id",key:"$all.key",status:"$all.status_map.status"},status_map:{$mergeObjects:"$$ROOT.all.status_map"}}},{$addFields:{"status_map.start":{$ifNull:["$status_map.start",[]]},"status_map.final":{$ifNull:["$status_map.final",[]]}}},{$group:{_id:{_id:"$_id._id",key:"$_id.key"},key:{$first:"$_id.key"},status_map:{$push:"$status_map"}}}])

Result