Database

[{"query":{"filters":{"cities":["Warsaw"],"universities":[],"fieldOfStudyTypes":[],},}},{"query":{"filters":{"cities":["Miami"],"universities":[],"fieldOfStudyTypes":[],},}},{"query":{"filters":{"cities":["Warsaw","New York"],"universities":[],"fieldOfStudyTypes":["Computer Science","History"],},}},{"query":{"filters":{"cities":["London"],"universities":[],"fieldOfStudyTypes":["Computer Science"],},}},{"query":{"filters":{"cities":["Paris"],"universities":[],"fieldOfStudyTypes":["Computer Science"],},}},{"query":{"filters":{"cities":["Paris"],"universities":[],"fieldOfStudyTypes":["Computer Science"],},}}]

Query

db.collection.aggregate([{$unwind:{path:"$query.filters.cities",preserveNullAndEmptyArrays:true}},{$group:{_id:"$query.filters.cities",total:{$sum:1},fieldOfStudyTypes:{$addToSet:"$query.filters.fieldOfStudyTypes"}}},{$addFields:{fieldOfStudyTypes:{$reduce:{input:"$fieldOfStudyTypes",initialValue:[],in:{$concatArrays:["$$this","$$value"]}}}}},{$unwind:{path:"$fieldOfStudyTypes",preserveNullAndEmptyArrays:true}},{$group:{_id:"$_id",total:{$first:"$total"},fieldOfStudyTypes:{$addToSet:{$cond:[{$gt:["$fieldOfStudyTypes",null]},{id:"$fieldOfStudyTypes",total:{$sum:1}},{}]}}}},{$addFields:{fieldOfStudyTypes:{$filter:{input:"$fieldOfStudyTypes",cond:{$ne:["$$this",{}]}}}}}])

Result