Database
db={categories:[{"_id":231,"text":"category 231"},{"_id":276,"text":"category 276"},{"_id":245,"text":"category 245"}],posts:[{"_id":74,category:"245"},{"_id":75,category:"245"},{"_id":72,category:"276"}]}
Query
db.posts.aggregate([{$group:{_id:{$toInt:"$category"},count:{$sum:1}}},{$lookup:{from:"categories",as:"category",localField:"_id",foreignField:"_id"}},{$sort:{count:-1}},{$group:{_id:null,topCategories:{$push:{$arrayElemAt:["$category.text",0]}}}}])