将$ gt date转换为= date而不是> date

时间:2019-11-19 22:55:21

标签: node.js sequelize.js

我是使用Sequelize和Node.js的新手,但是我的代码中的日期比较存在问题。

User.findOne({ where: {
    resetToken: passwordToken,
    resetTokenExpiration: { $gt: Date.now() },
    id: userId
  }})

当我运行它并检查日志时,查询为:

SELECT `id`, `password`, `email`, `resetToken`, `resetTokenExpiration`, `createdAt`, `updatedAt` FROM `users` AS `user` WHERE `user`.`resetToken` = 'f5779192069c3f1c3d8aae3019cf6172e83d9f07b3741a50caedf793dc3bb43c' AND `user`.`resetTokenExpiration` = '2019-11-19 06:00:00' LIMIT 1;

为什么不使用resetTokenExpiration> date,但使用resetTokenExpiration = date?

谢谢

1 个答案:

答案 0 :(得分:1)

您需要指定正确的范围operators,在这种情况下为[Op.gt]

User.findOne({ where: {
    resetToken: passwordToken,
    resetTokenExpiration: { [Op.gt]: Date.now() }
    id: userId
  }})