【问题标题】:Couchbase View : Sorting on KeysCouchbase 视图:按键排序
【发布时间】:2015-09-02 11:12:37
【问题描述】:

我正在使用 Couchbase 3.0,并且我有一个我想要执行排序的用例,但是当我通过 couchbase 拍摄时,它不提供对值的排序,但它提供对键的排序,但是当我使用降序(true)时,它是返回我空列表。另一方面,如果我只是简单地使用它而不降序,那么它会给我所有相关的文档。

我的地图功能是:

function (doc, meta) {
  emit([meta.id,doc.latest.sortData],null);
}
}

现在我的用例是我想对 meta.id 执行匹配查询,然后对所有匹配的情况对数据进行排序,然后找出最高值。

我使用的代码是:

ViewQuery.from(DesignDocName, viewName).startKey(JsonArray.from(write(List("something","")))).descending(true).limit(5).stale(Stale.FALSE))

如果我删除了 descending 参数,那么我会得到相关的行,但它们没有排序。那么您能否提供一种方法来完成此操作。

任何帮助表示赞赏

谢谢!

【问题讨论】:

  • 没有descending,你得到想要的结果吗?你不应该使用某种形式的endKey 来限制单个meta.id吗?
  • 如果我使用 endKey=something 那么它也给了我一个空列表
  • 我们认为这需要 map 和 reduce 才能完成。您能否提供一些示例数据和预期结果?有了它,我们可以帮助您解决问题。我们将在您的 emit 语句中同时需要一个键和一个值。

标签: scala couchbase couchbase-view


【解决方案1】:

我在阅读 Couchbase 的文档时偶然发现了这一行:

因为选择是在对视图结果进行排序之后进行的,如果您 将结果配置为按降序排序,您就是 使用键范围选择信息,那么您还必须反转 startkey 和 endkey 参数。

请看这里:http://docs.couchbase.com/admin/admin/Views/views-querying.html#ordering

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    相关资源
    最近更新 更多