Jos*_*han 2 javascript node.js sequelize.js
我想在 Sequelize 中做一个这样的声明。
Select * from table WHERE completed = 0 AND tracking = 1 AND ((FromNumber = +15625554444 AND ToNumber = +17145554444) OR (FromNumber = +17145554444 AND ToNumber = +15625554444))
Run Code Online (Sandbox Code Playgroud)
我将如何在 Sequelize 中执行此查询?我查看了文档,但很困惑,并且在我的尝试中一直遇到奇怪的查询。
到目前为止,我在试验时的实际代码尝试是这样的,但这并不意味着什么,因为它现在不起作用。我不确定这种类型的 AND/Or 场景的语法应该是什么样的。
var setNumberData = await models["texts"].findOne({
where: {
completed: 0,
agentNumber: agentData.number,
trackingNumber: obj.To,
[Op.and]: [
{to: realTo},
{[Op.or] : [{from: agentData.number}]}
],
// [Op.and]: [{to: obj.To}],
// [Op.or]: [{from: obj.To}],
// [Op.and]: [{to: obj.From}]
}
});
Run Code Online (Sandbox Code Playgroud)
我想到了!关键是 [] 就像有问题的条件的括号。
var setNumberData = await models["texts"].findOne({
where: {
completed: 0,
agentNumber: agentData.number,
trackingNumber: obj.To,
[Op.or]: [
{[Op.and] : [
{from: obj.From},
{to: realTo}
]},
{[Op.and] : [
{from: realTo},
{to: obj.From}
]}
]
}
});
Run Code Online (Sandbox Code Playgroud)