基于属性排序

时间:2014-04-13 07:45:40

标签: sails.js waterline

我该怎么做:

sort('object.property')

(对象被定义为模型中的类型' json')

与Waterline?

请注意,我使用的是最新的稳定版本0.9。〜但还没有关联。

1 个答案:

答案 0 :(得分:2)

快速测试显示sails-mongo适配器允许开箱即用的JSON属性排序(它透明地连接到mongo数据库)。

首先,我使用以下方法创建了一个空白控制器和模型:

sails generate foo

然后我在我的模型上定义了data类型为json的属性:

module.exports = {
    attributes: {
        data: 'json'
    }
};

我通过使用这样的数据HTTP POST创建了几个对象(我增加了排序值):

{
    "data": {
        "sort": 1
    }
}

之后我使用此GET请求获取了我的收藏:

http://localhost:1337/foo?sort=data.sort+desc

将在内部产生类似

的调用
Foo.find().sort('data.sort desc').exec(callback);

现在,服务器响应按给定属性排序:

[
    {
        "data": {
            "sort": 3
        },
        "createdAt": "2014-04-13T09:35:49.734Z",
        "updatedAt": "2014-04-13T09:35:49.734Z",
        "id": "534a5a7553f1e98e09d1d86b"
    },
    {
        "data": {
            "sort": 2
        },
        "createdAt": "2014-04-13T09:35:45.814Z",
        "updatedAt": "2014-04-13T09:35:45.814Z",
        "id": "534a5a7153f1e98e09d1d86a"
    },
    {
        "data": {
            "sort": 1
        },
        "createdAt": "2014-04-13T09:35:41.958Z",
        "updatedAt": "2014-04-13T09:35:41.958Z",
        "id": "534a5a6d53f1e98e09d1d869"
    }
]