代码之家  ›  专栏  ›  技术社区  ›  chaeyk

沙发床地图/缩小应用早期组或键选择?

  •  0
  • chaeyk  · 技术社区  · 10 年前

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

    文件

    { "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 回复  |  直到 10 年前
        1
  •  1
  •   Cecile    10 年前

    您的测试结果似乎很正确:键选择在reduce之前应用。

    查询grouplevel(1)表示您希望按第一个键对视图中的每一行进行计数。

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

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

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

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

    我开了一张罚单来更新这里的文档: https://issues.couchbase.com/browse/DOC-1029