如何通过降低价值来订购视图结果? CouchDB的

时间:2010-03-12 20:37:14

标签: javascript couchdb

我可以按减值返回的值来订购视图的结果吗?

{
    "rows": [
        {"key":"bob","value":2},
        {"key":"john","value":3},
        {"key":"zztop","value":1}
     ]
}

我想得到这样的结果:

{
    "rows": [
        {"key":"zztop","value":1},
        {"key":"bob","value":2},
        {"key":"john","value":3}

     ]
}

2 个答案:

答案 0 :(得分:1)

我只是将其内置到密钥中...

COPY

为了搜索特定键,请使用如下所示的开始键/结束键查询:

{"key": [1, "zztop"], "value": "whateverYouWant"},
{"key": [2, "bob"], "value": "whateverYouWant"},
{"key": [3, "john"], "value": "whateverYouWant"}

只要您的值是数字,只要使endkey大于可能的最大值,此查询就应返回“ zztop”的结果。

草率,但是我还没有找到更好的CouchDB排序方法。总而言之,您最好在应用程序中进行排序。

答案 1 :(得分:0)

您只想按每个对象的rows属性对value数组进行排序?您可以为js sort方法指定自定义比较方法。

myResult.rows.sort(function (a, b) {
    return parseInt(a.value,10) - parseInt(b.value,10);
});

参数ab将分别是rows数组中的条目。该方法返回一个大于0,0或小于零的int值。大于0意味着a应该在b之前排序,相反小于0,0意味着它们是相等的。