Database

[{"data":[{"key":"invoice-date","value":{"$date":"2023-05-04T00:00:00.000Z"}},{"key":"invoice-total","value":110.29}]},{"data":[{"key":"invoice-date","value":{"$date":"2023-05-04T00:00:00.000Z"}},{"key":"invoice-total","value":47.18}]},{"data":[{"key":"invoice-date","value":{"$date":"2023-05-05T00:00:00.000Z"}},{"key":"invoice-total","value":22.05}]}]

Query

db.collection.aggregate([{$match:{"data.key":{$in:["invoice-date","invoice-total"]}}},{$set:{data:{$arrayToObject:{$map:{input:"$data",in:{k:"$$this.key",v:"$$this.value"}}}}}},{$group:{_id:{$toString:"$data.invoice-date"},total:{$sum:"$data.invoice-total"}}},{$group:{_id:null,data:{$push:{k:"$_id",v:"$total"}}}},{$replaceWith:{$arrayToObject:"$data"}}])

Result