@vladislav3101

Как в Sequlize вернуть значение атрибута вместо объекта?

const transaction = await Transaction.findByPk(1, {
attributes: ['id'],
include: [
  {
    model: TransactionStatus,
    as: 'status',
    attributes: ['name']
  }
]
})

Результат:
{id: 1, status: { name: "success" } }
Можно ли присвоить значение name для ключа status с помощью параметров Sequelize или мне придется писать функцию обертку, которая вернёт мне json в нужном формате ?
Ожидаемый результат:
{id: 1, status: "success" }
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
@vladislav3101 Автор вопроса
Решение:
Метод col()
const transaction = await Transaction.findByPk(1, {
attributes: [[sequelize.col('transactionStatus.name'), 'status'], 'id'],
include: [
  {
    model: TransactionStatus,
    as: 'transactionStatus',
    attributes: []
  }
]
})

Мне пришлось ключ as изменить на другое название. По какой то причине Sequlize не хочет выводить столбец с именем "status", когда в "подключаемой"(include) модели есть ключ as с таким же названием (хотя запрос sql выполняется и возвращает данные как нужно).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы