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:{invoiceDate:{$getField:{input:{$first:{$filter:{input:"$data",cond:{$eq:["$$this.key","invoice-date"]}}}},field:"value"}},invoiceTotal:{$getField:{input:{$first:{$filter:{input:"$data",cond:{$eq:["$$this.key","invoice-total"]}}}},field:"value"}}}},{$group:{_id:"$invoiceDate",total:{$sum:"$invoiceTotal"}}},{$group:{_id:null,data:{$push:{k:{$toString:"$_id"},v:"$total"}}}},{$replaceRoot:{newRoot:{$arrayToObject:"$data"}}}])

Result