Как получить количество записей в базе данных в месяц Sequelize - PullRequest
1 голос
/ 25 февраля 2020

У меня есть следующий запрос в sequelize

let regMonth = [];

    let month = 1;  
while (month < 13) {

    const currMonth = await registrations.findAndCountAll({
      attributes: ['id'],
  where: {
    createdAt: {
      [Op.gte]: moment("0101", "MMDD").subtract((30 * month)-365, 'days').toDate()
    }
  }
})

regMonth.push(currMonth);

month++;


}

И предполагается создать массив, который содержит количество записей базы данных, созданных в соответствующие месяцы. И это работает в некоторой степени, но результирующий массив выглядит следующим образом:

[3,3,0,0,0,0,0,0,0,0,0,0]

, но он должен возвращать

[0,3,0,0,0,0,0,0,0,0,0,0]

, потому что я только добавил 3 записей в феврале и ни в каком другом месяце.

Как я могу решить эту проблему, или есть ли более эффективный способ сделать это, возможно, сделав текущий год неактуальным.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 25 февраля 2020
createdAt: {
      [Op.gte]: moment("0101", "MMDD").add(month-1, 'months').toDate(),
      [Op.lt]: moment("0101", "MMDD").add(month, 'months').toDate(),
    }

Пожалуйста, имейте в виду разницу часового пояса (если есть) между значениями create_at в вашей БД и текущим часовым поясом вашего сервиса.

...