通过创建这样的对象
var condition=
{
where:
{
LastName:"Doe",
FirstName:["John","Jane"],
Age:{
gt:18
}
}
}
然后传进来
Student.findAll(condition)
.success(function(students){
})
它可以像这样漂亮地生成SQL
"SELECT * FROM Student WHERE LastName='Doe' AND FirstName in ("John","Jane") AND Age>18"
但是,它都是'AND'条件,我如何通过创建条件对象来生成'OR'条件?
9条答案
按热度按时间t2a7ltrp1#
看来现在有了另一种格式
会产生
参见文档:http://docs.sequelizejs.com/en/latest/docs/querying/#where
pepwfjgg2#
基于字符串的运算符将来将被弃用(您可能已经在控制台中看到了警告)。
使用符号运算符对我来说相当困惑,我用两个例子更新了文档。
bxjv4tth3#
使用
Sequelize.or
:Reference(搜索
Sequelize.or
)编辑:同样,这已经被修改,最新的方法见Morio's answer,
2ekbmq324#
在Sequelize版本5中,您也可以使用这种方式(完全使用运算符Sequelize):
然后,您必须包括以下内容:
然后把它传进去:
它可以像这样漂亮地生成SQL:
1dkrff035#
对于续集4
查询
Operators的语法
注意事项
$
(例如$and
、$or
...),因为这些将被弃用{freezeTableName: true}
,否则Sequelize将根据其名称的复数形式进行查询(Student -〉Students)6tr1vspr6#
参见docs about querying。
这将是:
0yycz8jy7#
这对我有用!
r3i60tvu8#
对于那些在进行更复杂的查询时遇到问题的人,例如-
将是:
iugsix8n9#