0

我正在尝试排序 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' } ]**

谁能帮帮我。请..

按字符串排序,但按数字(整数)排序​​。

我的查询或帆水线标准排序有任何问题吗

4

3 回答 3

1

首先你应该做查询查找和排序()

Modal.find()
.sort({id: 'asc'})
.exec(function(err, res) {
  console.log(res)
});
于 2015-12-01T14:14:06.693 回答
0

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

帆-redis/lib/database/schema.js

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

于 2015-12-11T13:23:42.663 回答
0

文档在这方面不是很好,但是如果您将对象传递给sort(). 更容易传递一个字符串:

Model.find().sort('id asc').exec(function (err, res) {
  console.log(res)
});
于 2018-01-03T15:35:00.610 回答