Database

[{"_id":1,"Quality":["HIGH","LOW","LOW","HIGH"],"Pages":[10,10,12,17]}]

Query

db.collection.aggregate([{$project:{Quality:{$map:{input:{$range:[0,{$size:"$Quality"}]},in:{Quality:{$arrayElemAt:["$Quality","$$this"]},Pages:{$arrayElemAt:["$Pages","$$this"]},}}}}},{"$project":{"newArrayField":{"$map":{"input":{"$setUnion":["$Quality.Quality"]},"as":"m","in":{"k":"$$m","v":{"$filter":{"input":"$Quality","as":"d","cond":{"$eq":["$$d.Quality","$$m"]}}}}}}}},{$project:{d:{$arrayToObject:{$map:{input:"$newArrayField",in:{k:"$$this.k",v:{$sum:"$$this.v.Pages"}}}}}}}])

Result