Database
[{"name":"John","city":"Milan","company":"Apple"},{"name":"Nicole","city":"Rome","company":"Microsoft"},{"name":"Michael","city":"Milan","company":"Paypal"},{"name":"Emma","city":"Paris","company":"Apple"},{"name":"Daniel","city":"Milan","company":"Amazon"},{"name":"Sophia","city":"Rome","company":"Apple"},{"name":"William","city":"Berlin","company":"Google"},{"name":"Olivia","city":"Milan","company":"Microsoft"},{"name":"Alexander","city":"Rome","company":"Amazon"},{"name":"Mia","city":"New York","company":"Apple"},{"name":"James","city":"Berlin","company":"Amazon"},{"name":"Ava","city":"Milan","company":"Apple"},{"name":"Benjamin","city":"Rome","company":"Microsoft"},{"name":"Charlotte","city":"Paris","company":"Google"},{"name":"Henry","city":"Milan","company":"Amazon"},{"name":"Amelia","city":"Rome","company":"Apple"},{"name":"Samuel","city":"Berlin","company":"Microsoft"},{"name":"Ella","city":"Milan","company":"Google"},{"name":"Joseph","city":"New York","company":"Apple"},{"name":"Emily","city":"Berlin","company":"Amazon"},{"name":"Liam","city":"Milan","company":"Google"},{"name":"Isabella","city":"Rome","company":"Microsoft"},{"name":"Noah","city":"Paris","company":"Amazon"},{"name":"Sophia","city":"Milan","company":"Apple"},{"name":"Logan","city":"Rome","company":"Google"},{"name":"Mia","city":"Berlin","company":"Microsoft"},{"name":"Lucas","city":"Milan","company":"Amazon"},{"name":"Olivia","city":"Rome","company":"Apple"},{"name":"Mason","city":"New York","company":"Google"},{"name":"Amelia","city":"Berlin","company":"Microsoft"},{"name":"Elijah","city":"Milan","company":"Amazon"},{"name":"Charlotte","city":"Rome","company":"Apple"},{"name":"Ethan","city":"Paris","company":"Google"},{"name":"Harper","city":"Milan","company":"Microsoft"},{"name":"Oliver","city":"Rome","company":"Amazon"},{"name":"Ava","city":"New York","company":"Apple"},{"name":"Jacob","city":"Berlin","company":"Google"},{"name":"Aiden","city":"Milan","company":"Microsoft"},{"name":"Emily","city":"Rome","company":"Amazon"},{"name":"Daniel","city":"Paris","company":"Apple"}]
Query
db.collection.aggregate([{$facet:{cities:[{$group:{_id:"$city",v:{$sum:1}}},{$sort:{v:-1}},{$limit:4},{$project:{k:"$_id",v:"$v",_id:0}}],companies:[{$group:{_id:"$company",v:{$sum:1}}},{$sort:{v:-1}},{$limit:4},{$project:{k:"$_id",v:"$v",_id:0}}]}},{$project:{converted:[{"$arrayToObject":"$cities"},{"$arrayToObject":"$companies"}]}},{$unwind:"$converted"},{$replaceRoot:{newRoot:"$converted"}}])