【问题标题】:Alternative compound key ranges in CouchDBCouchDB 中的替代复合键范围
【发布时间】:2013-06-26 18:01:12
【问题描述】:

假设一个表示对象关系的 mapreduce 函数如下:

function (doc) {
    emit([doc.source, doc.target, doc.name], null);
}

过滤复合键的一般例子是这样的:

startKey = [ a_source ]
endKey   = [ a_source, {} ]

这应该提供从 a_source

引用的所有对象的列表

现在我想要相反的,但我不确定这是否可能。我无法找到 variant 部分首先出现的示例,例如:

startKey = [ *simbol_first_match* , a_destination ]
endKey   = [ {} , a_destination ]

这可能吗?查询中的复合键 (1) 过滤和 (2) 排序操作是否仅限于键中出现的元素顺序?

我知道我可以定义另一个视图/mapreduce,但我想尽可能避免额外的磁盘空间成本。

【问题讨论】:

    标签: nosql mapreduce couchdb


    【解决方案1】:

    不,你不能那样做。请参阅here,其中我解释了键如何在使用 CouchDB 的视图请求中工作。

    复合键没有什么特别的,没有过滤或任何东西。在内部,您必须想象不再有 数组。它只是我们开发人员的语法糖。所以[a,b] - [a,c] 的处理方式与'a_b' - 'a_c' 一样(_ 是一个特殊的分隔符)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多