文章集合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 |
怎样输出所有分类,并按照该分类下文章的数目由多到少排序呢?
文章集合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 |
怎样输出所有分类,并按照该分类下文章的数目由多到少排序呢?
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
mongo的聚合只能针对单集合操作,不过你这个并不复杂,还是可以简单实现的。
首先通过
posts.aggregate([{$group:{_id:"$category",count:{$sum:1}}])
获得分类下文章的数量。之后如果需要显示 Category Name ,就再到 categories 里查询即可。