Не работает сортировка ватерлинии парусов по номеру (sails-redis)

Я пытаюсь сделать идентификатор сортировки

Модальный:

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' } ]**

Кто-нибудь может мне помочь. Пожалуйста..

Сортировка по строке работает, а по числу(между).

Есть ли какие-либо проблемы с моим запросом или проблемой с сортировкой критериев ватерлинии парусов?


person Max    schedule 01.12.2015    source источник
comment
когда вы смотрите в своей базе данных, вы уверены, что если идентификатор имеет целочисленный тип, ваша миграция в local.js равна изменению? вы должны скопировать свой результат JSON, только find().   -  person jhonny lopez    schedule 03.12.2015
comment
Да .. Я уверен в своем идентификаторе модели -> type: 'integer', autoIncrement: true, primaryKey: true. Вы пробовали сортировать по идентификатору, где идентификатор является числовым. используя паруса-redis. Колуд, пожалуйста, помогите мне?   -  person Max    schedule 07.12.2015


Ответы (3)


Сначала вы должны выполнить запрос find, а затем sort()

Modal.find()
.sort({id: 'asc'})
.exec(function(err, res) {
  console.log(res)
});
person jhonny lopez    schedule 01.12.2015
comment
Извините за ошибку, я исправил свой вопрос в сообщении. Любая помощь - person Max; 02.12.2015
comment
Нужна сортировка ватерлинии парусов по номеру, а не по строке. Кто-нибудь пробовал или сталкивался с этой проблемой, какой-либо альтернативой? - person Max; 03.12.2015

Я просмотрел индекс и схему адаптера Sails-Redis, кое-чего не хватает. при анализе входных данных, таких как «11», метод не беспокоится о типе данных. Такие данные, как {id: 1} и {id: '1'}, считаются разными, несмотря на то, что в указанной модели type: 'integer .

паруса-redis/lib/database/schema.js

код изменений: Schema.prototype.parse . . case 'integer': values[key] = parseInt(values[key]); break; case 'float': values[key] = parseFloat(values[key]); break; } } . . изменения у меня работают. Убедитесь, что значения [ключ] не равны нулю

person Max    schedule 11.12.2015

Документация не очень хороша, но выглядит например, вам может понадобиться использовать двоичную запись, если вы передаете объект sort(). Проще просто передать строку:

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