Database

[{"data":[{"key":"TP-1","status_map":[{"status":"Closed","final":[6,3],/** Expected Output*/"start":[/** sum:6 [(6-2)+(3-1(start_default))=4+2]*/2],"final_default":[4]},{"status":"Done","final":[4],/** Expected Output*/"start":[/** sum:2 [(4-3)+(2(final_default)-1)=1+1]*/3,1],"final_default":[2]}]},{"key":"TP-2","status_map":[{"status":"Closed","final":[1,5],/** Expected Output*/"start":[],/**sum:4 [(1-1(start_default))+(5-1(start_default))=0+4]*/"final_default":[3]},{"status":"Done","final":[],/** Expected Output*/"start":[/**sum:3 [(5(final_default)-3)+(5(final_default)-4)=2+1]*/3,4],"final_default":[5]}]}]}]

Query

db.collection.aggregate([{$project:{data:{$map:{input:"$data",as:"d",in:{key:"$$d.key",status_map:{$map:{input:"$$d.status_map",as:"sm",in:{status:"$$sm.status",sum:{$reduce:{input:{$zip:{inputs:["$$sm.final","$$sm.start"],useLongestLength:true}},initialValue:0,in:{$add:["$$value",{$subtract:[{$ifNull:[{$arrayElemAt:["$$this",0]},{$arrayElemAt:["$$sm.final_default",0]}]},{$ifNull:[{$arrayElemAt:["$$this",1]},1]}]}]}}}}}}}}}}}])

Result