CouchDB Map / Reduce到一个数组

时间:2012-02-18 18:52:28

标签: couchdb mapreduce

我有很多类似的文件:

{userId: 123, msg:{ timestamp:123456, event:"actionA"} }

{userId: 123, msg:{ timestamp:123466, event:"actionB"} }

etc...

映射fn:

emit(doc.userId, [doc.msg])

减少fn:

return [].concat.apply([], vs)

这些功能似乎符合我的预期,所以我认为我会看到输出:

Key: 123, Value: [{timestamp:123456, event:"actionA"}, {timestamp:123466, event:"actionB"}, ...etc...]

但是,我得到减少溢出错误,“减少输出必须更快地收缩”。实际上,couchdb docs表示“根据经验,减少函数应该减少到单个标量值。” ......“如果你尝试使用”错误方式“,CouchDB会给你一个警告。”

所以,我想我正在使用Couch MR“错误的方式”。进行这种计算的“正确方法”是什么?

1 个答案:

答案 0 :(得分:2)

我认为正确的方法是使用list function。如果这是你想要的,你可以让你的列表函数输出JSON。