gpt4 book ai didi

sequelize.js - 如何在 Sequelize 中使用 'or' 运算符制作位置?

转载 作者:行者123 更新时间:2023-12-03 22:27:39 26 4
gpt4 key购买 nike

我想知道在这种情况下如何使用 'or' 运算符:

getOrderDeadline(order) {
return order.getDeadlines({
limit: 1,
where: {
'$OrdersDeadlines.initialDate$': { [this.Sequelize.Op.lte]: new Date() },
'$OrdersDeadlines.finishDate$': { [this.Sequelize.Op.gte]: new Date() },
},
order: [['situationId', 'DESC']],
});
}

我需要在当前日期内获得截止日期,但有时截止日期可能具有不确定的日期,即 finishDate 列中的 null 值。所以我需要使用 'or' 运算符。

最佳答案

您应该按以下方式使用 or 运算符:

getOrderDeadline(order) {
const Op = this.Sequelize.Op;
const now = new Date();
return order.getDeadlines({
limit: 1,
where: {
[Op.or]: [
[Op.and]: [
{'$OrdersDeadlines.initialDate$': { [Op.lt]: now }},
{'$OrdersDeadlines.finishDate$': { [Op.gt]: now }},
],
{'$OrdersDeadlines.initialDate$': { [Op.lt]: now }},
]
},
order: [['situationId', 'DESC']],
});
}

根据您的评论更新。旁注:正如你所说的“<”,我使用了 Op.gt 和 Op.lt 而不是 Op.gte 和 Op.lte。

此外,这对应于您想要的以下查询:
   ( initialDate < currentDate and finishDate > currentDate ) 
or ( initialDate < currentDate )

这与 ( initialDate < currentDate ) 完全相同

关于sequelize.js - 如何在 Sequelize 中使用 'or' 运算符制作位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51402923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com