CouchDB为行键返回None(reduce函数)

2024-04-19 03:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个map函数和reduce函数来计算一个键的所有出现次数。CouchDB 2.0设计文档代码如下:

地图功能

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

减少功能

_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}

任何帮助都将不胜感激。你知道吗

谢谢你

布莱恩


Tags: 函数代码文档truemapreducedocfunction
1条回答
网友
1楼 · 发布于 2024-04-19 03:27:42

使用reduce函数时,默认行为是将整个数据集缩减为单个值。如果需要分组,请将group=true添加到请求中。(documentation

虽然您没有特别询问这个问题,但在CouchDB中使用map/reduce时无疑会遇到它。如果您正在发射复杂键(例如:数组),那么可以使用group_level参数按数组的各个部分从左到右进行分组。(example

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

相关问题 更多 >