风帆水线排序数量不工作(sails-redis)

时间:2015-12-01 13:41:18

标签: sorting sails.js waterline sails-redis

我正在尝试排序ID

模态:

module.exports = { autoPK: false, attributes: { id: { type: 'integer', autoIncrement:true, primaryKey: true }, } }

查询:

mymodal.find().sort({id: 'asc'}).exec(function (err, res) {
    console.log(res)
});

数据:

[{id:'2',},{id:'1'},{id:'11'}]

实际值:

[{id:'1',},{id:'11'},{id:'2'}]

**预期:

[{id:'1',},{id:'2'},{id:'11'}] **

任何人都可以帮助我。请.. ..

对字符串工作进行排序,但是按数字(整数)进行排序。

sails waterline criteria sort

是否存在我的查询或问题

3 个答案:

答案 0 :(得分:1)

首先你应该查询查询和稍后排序()

Modal.find()
.sort({id: 'asc'})
.exec(function(err, res) {
  console.log(res)
});

答案 1 :(得分:0)

我浏览了sails-redis适配器索引和架构,缺少一些东西。在解析输入数据(如'11')时,该方法不担心数据类型。 即使在模型中,{id:1}和{id:'1'}等数据也会被认为是不同的 type: 'integer 指定。

帆-redis的/ LIB /数据库/ schema.js

更改代码: Schema.prototype.parse . . case 'integer': values[key] = parseInt(values[key]); break; case 'float': values[key] = parseFloat(values[key]); break; } } . . 改变为我工作。确保值[key]不为空

答案 2 :(得分:0)

The documentation对此并不是很好,但如果将对象传递给sort(),则可能需要使用二进制表示法。更容易传递一个字符串:

Model.find().sort('id asc').exec(function (err, res) {
  console.log(res)
});