bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Sequelize вернуть вычесляемые поля?

Подскажите пожалуйста. Как правильно сделать в Sequelize (PostgreSQL) такой запрос
1) несколько полей нужно контактенировать id || ' ' || id as somefield
2) одно поле переименовать code as codeCartidge,

select id || ' ' || id as somefield, code as codeCartidge, quantity, printed  from "Cartridges"


вот сделал вот так

const cartridges = await models.Cartridge.findAll({
    order: ['code'],
    attributes: [models.sequelize.literal("id || ' ' || id"), models.sequelize.literal('code AS codeCartridge'), 'quantity', 'printed']
  });


результат:
[
        {
            "quantity": 500,
            "printed": 0
        },
        {
            "quantity": 500,
            "printed": 0
        },
   ...

Получается как 2 поля, где концентрация и где переименование выпали

вот результат в консоли:

Executing (default): SELECT id || ' ' || id, code AS codeCartridge, "quantity", "printed" FROM "Cartridges" AS "Cartridge" ORDER BY "Cartridge"."code"; { plain: false,
  raw: false,
  logging: [Function: bound consoleCall],
  order: [ 'code' ],
  attributes:
   [ Literal { val: 'id || \' \' || id' },
     Literal { val: 'code AS codeCartridge' },
     'quantity',
     'printed' ],
  hooks: true,
  rejectOnEmpty: false,
  originalAttributes:
   [ Literal { val: 'id || \' \' || id' },
     Literal { val: 'code AS codeCartridge' },
     'quantity',
     'printed' ],
  tableNames: [ 'Cartridges' ],
  type: 'SELECT',
  model: Cartridge }


Спасибо.
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 1
bogdan_uman
@bogdan_uman Автор вопроса
шлЫмазл неукЪ-поцЪ
Вроде, нашел решение, для алиасов нужно делать вложенный массив

const cartridges = await models.Cartridge.findAll({
    order: ['code'],
    attributes: [[models.sequelize.literal("id || ' ' || id"), 'id'],
      ['code', 'codeCartridge'],
      'quantity', 'printed']
  });
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Zeus Capital Москва
от 70 000 до 130 000 руб.
IWU Нижний Новгород
от 150 000 до 250 000 руб.
21 авг. 2019, в 14:20
15000 руб./за проект
21 авг. 2019, в 13:40
25000 руб./за проект