CouchDB reduce 函数给出了意想不到的结果

Posted

技术标签:

【中文标题】CouchDB reduce 函数给出了意想不到的结果【英文标题】:CouchDB reduce function gives unexpected results 【发布时间】:2012-07-31 15:05:44 【问题描述】:

我正在开发一个沙发应用程序。我的文档包含一个名为标签的字段,我正在尝试检索所有文档中的唯一标签。我的map/reduce函数如下:

map.js

function(doc)
        if(doc.tags)
            emit(doc.tags,1);
        

reduce.js

function(keys,values,rereduce)
    return sum(values);

并且返回的输出是所有标签的计数。我哪里错了?

【问题讨论】:

0 个接受的答案....祝你好运。 【参考方案1】:

如果你想要一个所有标签的列表,你不需要 reduce 函数。您需要使用 选项group=true。所以例如你打电话给

http://localhost:5984/yourdb/views/tag_view?group=true

或者couch.js你可以这样做

$.couch.db.view('your_view', data: "group": true);

如果您查看文档,您会看到为请求定义 ajaxOptions 的方式与在 jQuery 中为普通 ajax 请求定义它们的方式相同。因此,您只需使用记录在 here 的数据选项

欲了解更多信息,请参阅CouchDB Wiki Grouping。

【讨论】:

我正在使用 jquery.couch.js 插件。那么我该如何称呼它:我尝试了 $.couch.db($db).view("app/my_view?group=true") 但效果很好。

以上是关于CouchDB reduce 函数给出了意想不到的结果的主要内容,如果未能解决你的问题,请参考以下文章

CouchDB:使用 Reduce 时如何在 Map 函数中使用数组键?

CouchDB reduce函数的键(值)参数的排序顺序保证?

couchdb map函数和reduce函数

如何按字段对文档进行分组并使用带有 CouchDB 视图的自定义 reduce 函数列出不相等的值

CouchDB 视图(map/reduce)

Couchdb如何映射reduce