Database
[{"date":20221101,"time":1500,"productCode":"toycar","purchaseHistory":[{"clientid":123,"status":"SUCCESS"},{"clientid":456,"status":"FAILURE"}]},{"date":20221101,"time":1500,"productCode":"toycar","purchaseHistory":[{"clientid":890,"status":"SUCCESS"},{"clientid":678,"status":"SUCCESS"}]}]/** purchaseHistory.status = 'SUCCESS'* and date = 20221101: {productCode:"toycar",* "time": 1500, "docCount": 2, "purchaseHistCount":3}*/
Query
db.collection.aggregate([{$match:{date:20221101,"purchaseHistory.status":"SUCCESS"}},{"$addFields":{"purchaseHistory":{"$filter":{"input":"$purchaseHistory","as":"ph","cond":{$eq:["$$ph.status","SUCCESS"]}}}}},{$group:{_id:{t:"$time",pc:"$productCode"},docCount:{$sum:1},purchaseHistCount:{$sum:{$size:"$purchaseHistory"}}}}])