【问题标题】:Couchbase Server 4.5 N1QL order by integer field (PHP SDK)Couchbase Server 4.5 N1QL 按整数字段排序(PHP SDK)
【发布时间】:2016-02-26 16:26:59
【问题描述】:

我无法让 ORDER BY 在 Couchbase Server 4.5 中正常工作

文档

{ "name": "Green", "price": "156" }
{ "name": "Yellow", "price": "175" }
{ "name": "Red", "price": "1" }
{ "name": "Blue", "price": "18" }

PHP

$cluster = new CouchbaseCluster('http://127.0.0.1:8091');
$bucket  = $cluster->openBucket('products');
$bucket->enableN1ql(array('http://127.0.0.1:8093'));
$query = CouchbaseN1qlQuery::fromString("SELECT * FROM products ORDER BY price ASC");
$results = $bucket->query($query);

foreach ($results as &$r) { 
   $name  = $r->products->name;
   $price = $r->products->price;
   echo "$name: $price <br>";
}

输出

Red: 1
Green: 156
Yellow: 175
Blue: 18

请您告诉我如何告诉 Couchbase 价格字段是一个整数,以便正确完成订单。

【问题讨论】:

    标签: php server couchbase n1ql


    【解决方案1】:

    假设文档在桶 a 中。那么下面的查询应该可以工作。

    select to_number(price) b from a order by b;
    {
        "requestID": "6642f123-08c1-4ec2-9380-c11c9fd05c60",
        "signature": {
        "b": "number"
        },
        "results": [
            {
                "b": 1
            },
            {
                "b": 18
            },
            {
                "b": 156
            },
            {
                "b": 175
            }
        ],
        "status": "success",
        "metrics": {
            "elapsedTime": "9.39578ms",
            "executionTime": "9.36118ms",
            "resultCount": 4,
            "resultSize": 125,
            "sortCount": 4
        }
    }
    

    【讨论】:

    • 非常感谢我会试试这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多