CouchDB返回None行键(减少功能)

CouchDB返回None行键(减少功能)

问题描述:

我有一个map函数和reduce函数来计算一个键的所有出现次数。该代码是下面的CouchDB 2.0设计文档:CouchDB返回None行键(减少功能)

地图功能

function(doc) { emit(doc.domainID, 1); } 

Reduce函数

_sum 

这里是什么样的浏览器显示的快照:

Map and reduce functions result

这里是结果,当我运行在Python下面的代码:打印时

import couchdb 
couch = couchdb.Server("http://localhost:5984/")  
counts = couch['event_db'].view('doc/eventbydomainid', 
           reduce=True, descending=True) 

终端结果键和值

Terminal result showing no key

我期待下面的结果,但没有看到它:

{"ad1": 32, "ad2": 1} 

任何帮助woul不胜感激。

如果您使用的是减少功能谢谢

布赖恩

,默认行为是将整个数据集缩减为一个单独的值。如果您想分组,请将group=true添加到您的请求中。 (documentation

虽然您没有具体询问这一点,但您在使用CouchDB中的map/reduce时无疑会碰到它。如果您发出的是复杂键(例如:数组),则可以使用group_level参数按阵列的各个部分从左到右进行分组。 (​​)

这里一个有趣的用例是将一个日期作为一个数组发布,如:[2017, 8, 29, 22, 59, 16]。使用group_level=1将按年分组,group_level=2将按年份+月份分组,等等。 (专业提示:使用group_level将隐式设置group=true

+0

非常感谢你多米尼克!这是我正在寻找的解决方案。 – Brian

+0

你也可以推荐我如何根据开始或结束文档ID来计数吗?提前致谢! – Brian

+0

我相信你可以通过'startkey_docid'和'endkey_docid'参数来做到这一点。 ([documentation](http://docs.couchdb.org/en/2.0.0/api/ddoc/views.html#db-design-design-doc-view-view-name)) –