Как сделать сортировку по вложенным данным в Sequelize?
Нужно реализовать возможность сортировки записей в таблице Comments как по своим полям, так и по полям вложенной таблицы. Например, можно отсортировать записи по дате добавления, но так же нужно иметь возможность отсортировать по полю во вложенной таблице, например username или email. Пытаюсь сделать так, но сортировка работает только по основной таблице.
async getListComments(data) {
try {
const { limit, offset, sortBy, sortOrder } = data
const list = await Comments.findAndCountAll({
where: { parentId: null },
include: 'User',
limit: limit || 25,
offset: offset * limit || 0,
order: [
[sortBy || 'id', sortOrder || 'ASC'],
['User', sortBy || 'id', sortOrder || 'ASC'],
],
})
return list
} catch (e) {
throw createHttpError(500, e)
}
}
Пример вывода объекта коментария
{
"id": 1,
"text": "gi",
"parentId": null,
"createdAt": "2023-10-28T15:02:19.246Z",
"updatedAt": "2023-10-28T15:02:19.246Z",
"UserId": 1,
"User": {
"id": 1,
"username": "testffкgggggg",
"email": "testttggggggк@gmail.com",
"avatar": "avatars/16985052434303eQcywnQksHcl08Mct3BC6Ud.jpg",
"createdAt": "2023-10-28T15:00:43.472Z",
"updatedAt": "2023-10-28T15:00:43.472Z"
}
},
Так же пример запроса
localhost:4000/api/comments/list?sortBy=id&sortOrder=ASC