我在 MongoDb 中有一个数据库,其中包含两个集合:“类别”和“文章”。我在 NodeJs 上使用 Mongoose 连接到数据库并读取类别。我想在不发出额外请求/查询的情况下计算一个类别的文章数量,所以如果我能在数据库级别解决这个问题就完美了。
“类别”集合中的项目如下所示:
{
'_id' : ObjectId("..."),
'feed_id' : 1,
'name': 'Blog posts'
}
“文章”集合中的项目如下所示:
{
'_id' : ObjectId("..."),
'feed_id' : 1,
'title': 'Article title',
'published' : '12/09/2012',
...
}
因此类别和文章使用“feed_id”字段链接。
我想导出所有类别以及相应数量的文章:
{
'_id' : ObjectId("..."),
'feed_id' : 1,
'name': 'Blog posts',
'no_articles': 4
}
我不确定我应该如何做到这一点:
1)在类别集合中创建一个“no_articles”字段?如果是,我希望在从文章集合中插入或删除文档时自动更新。
2)阅读分类时将文章总结为'no_articles'?
我读了一些关于 MapReduce 和 group 的东西,但不太明白是否可以将它们用于这个特定的任务。