Как посчитать количество кортежей в отношении (Sequelize) - PullRequest
0 голосов
/ 03 мая 2020

Я получаю следующую ошибку, когда пытаюсь подсчитать количество пользователей в таблице пользователей. Соединение установлено и работает, и я могу получить другие данные, но проблема заключается в подсчете c. id является первичным ключом для отношения. Документация предполагает, что это способ правильного использования счетчика.

Ошибка

Необработанный отказ SequelizeDatabaseError: столбец «users.id» должен присутствовать в предложении GROUP BY или использоваться в совокупности функция

Подсчет количества пользователей

req.users.findAll({
      attributes: { include: [[req.sequelize.fn('COUNT', req.sequelize.col('username')), 'users']] }
    });

Определение модели

req.users = sequelize.define("users", Users);

1 Ответ

0 голосов
/ 03 мая 2020
req.users.findAndCountAll()

Это лучший вариант, который работает. Возвращает promise с объектом, содержащим rows, count.

Как я получил счет

const count = await req.users.findAndCountAll().then(result => {
  if (result.count > 0) throw new Error()
});
...