Я использую sequelize для подключения к базе данных mysql. У меня есть 2 таблицы ApplicationVersion и Provider в моей базе данных. Обе таблицы связаны. ApplicationVersion имеет "uuid" поставщика как внешний ключ.
В моей таблице "Поставщик" у меня есть столбец с именем weight
. Это поле веса имеет целочисленные значения. Я хочу отображать элементы в порядке убывания. поэтому я использовал этот order: [Sequelize.col('weight'), 'DESC'],
строк order: [Sequelize.col('weight'), 'DESC'],
в моей функции, но он не работает. Функция работает хорошо, если я удалю из нее порядок.
Здесь функция:
function getactiveProvidersList(user, callback) {
Provider.findAll({where: {enabled: 1},
include: [{
model: ApplicationVersion,
where: {'active': true},
}],
order: [Sequelize.col('weight'), 'DESC'],
}).then(function(providers) {
callback(providers);
});
}
Не могли бы вы рассказать мне правильный способ сделать это, а также, где я это испортил.
Любое предложение полезно. Спасибо!
Попробуй это.
function getactiveProvidersList(user, callback) {
Provider.findAll({where: {enabled: 1},
include: [{
model: ApplicationVersion,
where: {'active': true},
}],
order: ['weight','DESC'],
}).then(function(providers) {
callback(providers);
});
}
есть еще предложения по этому поводу здесь, а также внизу страницы
Provider.Literal
не является функцией, аProvider.fn
не является функциейorder: [ ['weight', 'DESC'],],
это сработало для меня. Спасибо @Legman