我有以下查询续集

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记录。

我该如何解决此问题,或者还有另一种更有效的方法可以解决此问题,可能使本年无关紧要。

谢谢您的帮助。

最佳答案

createdAt: {
      [Op.gte]: moment("0101", "MMDD").add(month-1, 'months').toDate(),
      [Op.lt]: moment("0101", "MMDD").add(month, 'months').toDate(),
    }


请记住,数据库中的created_at值与服务的当前时区之间的时差(如果有)。

07-28 10:00