在 CouchDB 中统计相关文档

jea*_*las 5 couchdb

我对 CouchDB 还很陌生,我仍然有一些问题围绕着查询我的数据的整个 MapReduce 方式......

为了保持传统的“博客”示例,假设我有两种类型的文档:post并且comment……每个评论文档都有一个post_id字段……

有没有办法只用 1 个查询就可以得到一个帖子列表,其中包含每个帖子的评论数量?假设我想显示一个帖子标题列表,其中包含每个帖子的评论数量,如下所示:

My First Post: 4 comments
My Second Post: 6 comments
....
Run Code Online (Sandbox Code Playgroud)

我知道我可以做到以下几点:

function(doc) {
    if(doc.type == "comment") {
        emit(doc.post_id, 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样减少它:

function (key, values, rereduce) {
    return sum(values);
}
Run Code Online (Sandbox Code Playgroud)

这给了我每个博客帖子 ID 的列表,以及每个帖子的评论数量。但是后来我需要单独获取博客文章的标题,因为我现在唯一拥有的是他们的 ID...

那么,有没有一种方法可以通过仅执行 1 个查询来检索每个博客文章标题的列表,以及每个文章的评论数量?