Database
[{"_id":1.0,"doc_id":1.0,"name":"abc","desc":"Laptop","amount":10.0,"quantity":2.0,"l1":"KT","L2":"Computer"},{"_id":2.0,"doc_id":1.0,"name":"abc","desc":"Laptop","amount":5.0,"quantity":1.0,"l1":"KT","L2":"Computer"},{"_id":3.0,"doc_id":1.0,"name":"abc","desc":"Computer","amount":20.0,"quantity":10.0,"l1":"IT","L2":"PC"},{"_id":4.0,"doc_id":1.0,"name":"xzy","desc":"Pen Drive","amount":10.0,"quantity":5.0,"l1":"HR","L2":"Pen Drive"},{"_id":5.0,"doc_id":1.0,"name":"xzy","desc":"Pen Drive","amount":10.0,"quantity":5.0,"l1":"MRO","L2":"Machine"},{"_id":6.0,"doc_id":1.0,"name":"xzy","desc":"Pen Drive","amount":10.0,"quantity":5.0,"l1":"HR","L2":"Pen Drive"},{"_id":7.0,"doc_id":1.0,"name":"xzy","desc":"Pen Drive","amount":5.0,"quantity":4.0,"l1":"HR","L2":""},{"_id":8.0,"doc_id":1.0,"name":"abc","desc":"Laptop","amount":10.0,"quantity":1.0,"l1":"IT","L2":"Laptop"}]
Query
db.collection.aggregate([{$match:{"doc_id":1}},{$group:{_id:{name:"$name",desc:"$desc"},amount:{$sum:"$amount"},count:{$sum:1},}},{$sort:{"_id.name":1,"amount":-1}},{$group:{_id:"$_id.name",amount:{$sum:"$amount"},count:{$sum:"$count"},desc:{$first:{value:"$_id.desc",descAmount:"$amount"}}},},{$addFields:{"desc.percent":{$multiply:[{$divide:["$desc.descAmount","$amount"]},100]}}}])