Database
[{"branch":"Main Office","department":"Accounting","transaction":[{"referenceCode":"REF1","product":[{"product":"pen","quantity":5,"color":"blue","size":10},{"product":"marker","quantity":7,"color":"black","size":15},{"product":"paper","quantity":27,"color":"gree","size":14},]},{"referenceCode":"REF2","product":[{"product":"pen","quantity":3,"color":"brown","size":9},{"product":"marker","quantity":6,"color":"pink","size":6},{"product":"paper","quantity":22,"color":"indigo","size":5},]},],},{"branch":"Sub-office","department":"Warehouse","transaction":[{"referenceCode":"REF3","product":[{"product":"pen","quantity":30,"color":"blue","size":5},{"product":"marker","quantity":30,"color":"gold","size":34},]},{"referenceCode":"REF4","product":[{"product":"pen","quantity":3,"color":"silver","size":2},{"product":"marker","quantity":6,"color":"white","size":3},{"product":"paper","quantity":30,"color":"violet","size":5},]},],},]
Query
db.collection.aggregate([{$unwind:"$transaction"},{$unwind:"$transaction.product"},{$group:{_id:{branch:"$branch",department:"$department",product:"$transaction.product.product"},quantity:{$sum:"$transaction.product.quantity"}}},{$replaceRoot:{newRoot:{$mergeObjects:["$_id",{"quantity":"$quantity"}]}}}])