Couchbase map / reduce应用早期的组或密钥选择?

时间:2015-12-28 18:30:56

标签: couchbase

Document表示应用了reduce / group / group_level,稍后会应用键选择。但我的测试结果相反。

文档

{ "k1": 1, "k2": 1 }
{ "k1": 1, "k2": 2 }

地图

emit([doc.k1, doc.k2], null)

减少

_count

测试

query.group_level(1).key(1) = 0         // expected 2
query.group_level(1).key([1,1]) = 1     // expected 0

我的测试错了?

1 个答案:

答案 0 :(得分:1)

您的测试结果似乎非常正确:在缩小之前应用键选择。

query.group_level(1)表示您想要计算视图中的每一行,按第一个键分组。

如果执行此查询,则会得到一个结果: [1] => 2

如果添加.key(xxx),这意味着在reduce之前,您希望将视图的数据集仅过滤到密钥xxx。

如果xxx = 1,则没有结果,因为视图中没有带有键1的行。

如果xxx = [1,1]则只有一个结果,因为有一行带有键[1,1]

我在这里打开了一张更新文档的票证:https://issues.couchbase.com/browse/DOC-1029