Database

[{_id:1,date:new Date(),products:[{id:"1",quantity:20},{id:"2",quantity:10}]}]

Query

db.collection.aggregate([{$addFields:{date:{$dateToString:{date:"$date",format:"%Y-%m-%d"}}}},{$unwind:"$products"},{$group:{_id:{date:"$date",id:"$products.id"},quantity:{$sum:"$products.quantity"}}},{$group:{_id:"$_id.date",products:{$push:{k:"$_id.id",v:"$quantity"}}}},{$project:{products:{$arrayToObject:"$products"}}}])

Result