关于 Mongodb 的聚合查询实现

文章集合posts

ObjectId Post Category
1 post 1 a
2 post 2 b
3 post 3 b
4 post 4 a
5 post 5 c
6 post 6 b

分类集合categories

ObjectId Category Name
1 a Category A
2 b Category B
3 c Category C

怎样输出所有分类,并按照该分类下文章的数目由多到少排序呢?

阅读 3.6k
2 个回答

mongo的聚合只能针对单集合操作,不过你这个并不复杂,还是可以简单实现的。

首先通过 posts.aggregate([{$group:{_id:"$category",count:{$sum:1}}]) 获得分类下文章的数量。
之后如果需要显示 Category Name ,就再到 categories 里查询即可。

Mongodb聚合查询相对比较复杂,可以查看萌阔论坛

推荐问题