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 }


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

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

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

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