Почему Sequelize COUNT не попадает в выборку?

Всем привет!

У меня какой-то странный случай. Делаю выборку в БД используя Sequelize:
const result = await Orders.findAll({
                attributes: ['college', [Sequelize.fn('COUNT', Sequelize.col('id')), 'count_col']],
                where: {
                    category: 7,
                    status: 30,
                    downloaded: 0
                },
                group: ['college']
            })

Получаю такой SQL:
SELECT `college`, COUNT(`id`) AS `count_col` FROM `Orders` AS `Orders` WHERE `Orders`.`category` = 7 AND `Orders`.`status` = 30 AND `Orders`.`downloaded` = 0 GROUP BY `college`;

Далее делаю:
result.map(current => console.log(current.count_col))


вот здесь count_col = undefined, хотя если делать:

result.map(current => console.log(current))

Получаю:

Orders {
  dataValues: { college: 12, count_col: 11 },     // ЗДЕСЬ count_col ЕСТЬ!
  _previousDataValues: { college: 12, count_col: 11 },
  _changed: {},
  _modelOptions: {
...

Кто-нибудь может объяснить, что за чертовщина здесь творится?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@Nc_Soft
У вас в моделе не описано это свойство, поэтому доставать надо так
current.dataValues.count_col;
Совет: не пользуйтесь sequilize, он монструозен, попробуйте knex
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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