Я не могу понять, как упорядочить по столбцу, который есть в моей включенной модели. Но я даже не возвращаю это поле в атрибутах. Я просто хочу заказать его, если это возможно. Или я могу вернуть его и не использовать, пока я могу сортировать по нему.
const users = await db.User.findAll({
raw: true,
attributes: [
'id',
'first_name',
'last_name',
'email',
'Permission.type'
],
include: [
{
model: db.Permission,
where: { id: { [Op.lte]: 2 } },
attributes: [],
order: [[{ model: db.Permission }, 'id', 'DESC']]
}
]
});
В блоке include
блок order
сейчас ничего не делает. Но у меня есть атрибут в моей модели разрешений под названием id
, по которому я хочу упорядочить все результаты. Я могу добавить Permission.id
к моему attributes
, если это необходимо. Но я попробовал, и это все равно не сработало.
Просто переместите order
вариант из include
в основные параметры:
const users = await db.User.findAll({
raw: true,
attributes: [
'id',
'first_name',
'last_name',
'email',
'Permission.type'
],
include: [
{
model: db.Permission,
where: { id: { [Op.lte]: 2 } },
attributes: []
}
],
order: [[{ model: db.Permission }, 'id', 'DESC']]
});
Также, возможно, вам следует указать id
в атрибутах include
.
Пожалуйста, никогда не пытайтесь изменить несколько вещей одновременно. Таким образом, вы не можете сказать, что именно вызвало проблему.
Хорошо, это сработало! Я не мог заставить его работать раньше, но я одновременно менял несколько вещей. Мне также пришлось вернуть идентификатор в основных атрибутах. Если я попытался вернуть его в атрибутах включения, он сломался, и я не получил никаких результатов.