Database

[{"_id":{"$oid":"617b0ddacda6cbd1a0403f68"},"type":"pc","date":"1","application":"6179d4c69c549281a3a4092e","situation":"after sales management","daterec":"2021-10-28","comment":"waiting for approval","createdAt":{"$date":"2021-10-28T20:53:14.338Z"},"updatedAt":{"$date":"2021-10-28T20:53:14.338Z"}},{"_id":{"$oid":"617b0ddaada6cbd1a0403f68"},"type":"pc","date":"1","application":"6179d4c69c549281a3a4092e","situation":"instock","daterec":"2021-10-28","createdAt":{"$date":"2021-10-28T20:53:14.338Z"},"updatedAt":{"$date":"2021-10-28T20:53:14.338Z"}},{"_id":{"$oid":"617b0ddacda6c7d1a0403f68"},"type":"pc","date":"1","application":"6179d4c69c549281a3a4092e","situation":"after sales management","daterec":"2021-10-28","comment":"waiting for pieces","createdAt":{"$date":"2021-10-28T20:53:14.338Z"},"updatedAt":{"$date":"2021-10-28T20:53:14.338Z"}},{"_id":{"$oid":"617b0dda8da6cbd1a0403f68"},"type":"pc","date":"1","application":"6179d4c69c549281a3a4092e","situation":"after sales management","daterec":"2021-10-28","comment":"waiting for approval","createdAt":{"$date":"2021-10-28T20:53:14.338Z"},"updatedAt":{"$date":"2021-10-28T20:53:14.338Z"}},{"_id":{"$oid":"617b0ddacda6cbd1a0403f64"},"type":"pc","date":"1","application":"6179d4c69c549281a3a4092e","situation":"after sales management","daterec":"2021-09-23","comment":"nothing","createdAt":{"$date":"2021-10-28T20:53:14.338Z"},"updatedAt":{"$date":"2021-10-28T20:53:14.338Z"}},{"_id":{"$oid":"617b0ddacda6cbd1a0403f08"},"type":"phone","date":"1","application":"6179d4c69c549281a3a4092e","situation":"in stock","daterec":"2021-10-28","createdAt":{"$date":"2021-10-28T20:53:14.338Z"},"updatedAt":{"$date":"2021-10-28T20:53:14.338Z"}}]

Query

db.collection.aggregate([{$group:{_id:{t:"$type"},total:{$sum:1},root:{$push:"$$ROOT"}}},{"$unwind":"$root"},{$group:{_id:{s:"$root.situation",t:"$root.type"},cnt:{$sum:1},total:{"$first":"$total"}}},{$project:{a:[{k:"$_id.s",v:"$cnt"}],type:"$_id.t",total:"$total",_id:0}},{$project:{d:{$arrayToObject:"$a"},type:1,total:1}},{$group:{_id:"$type",situation:{$push:"$d"},sum:{"$first":"$total"}}},{$project:{_id:0,type:"$_id",sum:1,"options":{$mergeObjects:"$situation"}}},{$replaceRoot:{newRoot:{$mergeObjects:["$$ROOT","$options"]}}},{$project:{options:0}}])

Result