在Couchbase或CouchDB中,是否可以在没有显式reduce函数的情况下进行分组?在我的客户端代码中,我希望将数据提供给我,就像缩减程序接收数据一样(假设所有映射器都用作输入,即使在重新缩减期间也是如此)。在没有定义reduce函数的情况下使用group=true
会给我带来错误:
$ curl http://127.0.0.1:8092/default/_design/testing1/_view/all?group=true
{"error":"query_parse_error",
"reason":"Invalid URL parameter 'group' or 'group_level' for non-reduce view."}
我可以添加恒等归约函数:
reduce(keys,data) {return data;}
但是 Couchbase 提示说我实际上并没有减少任何东西:
{"rows":[], "errors":[
{"from":"local","reason":"{<<"reduce_overflow_error">>,
<<"Reduce output must shrink more rapidly: Current output: '...'
}]}
我确实希望彻底减少我的客户。
最佳答案
这不是技术限制,而是逻辑限制。如果不对这些结果进行一些缩减,则无法对结果进行逻辑分组。这类似于 SQL 中的 GROUP BY
,除非您的 SQL 查询中也有某种聚合函数,否则您不能使用它。
关于couchdb - 是否可以创建一个 Couchbase View 来对输出进行分组而无需减少功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585965/