CouchDB返回None行键(减少功能)
问题描述:
我有一个map函数和reduce函数来计算一个键的所有出现次数。该代码是下面的CouchDB 2.0设计文档:CouchDB返回None行键(减少功能)
地图功能
function(doc) { emit(doc.domainID, 1); }
Reduce函数
_sum
这里是什么样的浏览器显示的快照:
这里是结果,当我运行在Python下面的代码:打印时
import couchdb
couch = couchdb.Server("http://localhost:5984/")
counts = couch['event_db'].view('doc/eventbydomainid',
reduce=True, descending=True)
终端结果键和值
我期待下面的结果,但没有看到它:
{"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
)
非常感谢你多米尼克!这是我正在寻找的解决方案。 – Brian
你也可以推荐我如何根据开始或结束文档ID来计数吗?提前致谢! – Brian
我相信你可以通过'startkey_docid'和'endkey_docid'参数来做到这一点。 ([documentation](http://docs.couchdb.org/en/2.0.0/api/ddoc/views.html#db-design-design-doc-view-view-name)) –