【发布时间】:2026-02-21 17:55:01
【问题描述】:
我在我的项目中使用 node.js 和 Sequelize ORM。我正在尝试获取阶段“待定”和日期在 2 到 10 之间的所有行(假日期)。这是我的查询:
const stain = await Gyn.findAll({
where: {
stage: `pending`,
lastUpdate: {
[Op.$between]: [startDate, endDate]
}
}
});
console.log(stainQc)
我的表中只有 2 行。我看到一个匹配我的查询,但我的代码中的console.log(stain) 显示有空数组。但它必须是一个项目。我做错了什么?
更新: 当我删除
lastUpdate: {
[Op.$between]: [startDate, endDate]
}
它通过“待定”找到我的行。
【问题讨论】:
-
查看日志并检查
sequelize正在生成什么查询 -
WHERE
gyn.stage= '待定' ANDgyn.lastUpdate= '[object Object]'; - 显然 '[object Object]' - 不对! -
似乎
startDate和endDate实际上不是date类型的对象。还有一件事,你为什么在操作符之前使用$。不应该是[Op.between]吗? -
是的,你是对的,$ 是一个错误!谢谢。你可以写一个答案,我会接受的。
标签: javascript mysql node.js sequelize.js