我想用sequelizejs在多个表上添加或条件。 我的问题是,我不知道如何在多个表格中使用或运算符($或和Sequelize.or)。
我想说我想实现以下sql-query:
function asyncGreet(name) {
var deferred = $q.defer();
setTimeout(function() {
deferred.notify('About to greet ' + name + '.');
if (okToGreet(name)) {
deferred.resolve('Hello, ' + name + '!');
} else {
deferred.reject('Greeting ' + name + ' is not allowed.');
}
}, 1000);
return deferred.promise;
}
我只会用sequelize实现第一个条件:
select * from A as a, B as b, C as c where (A.b_id = b.id and b.x = 7) or (A.c_id = C.id and c.z = "test")
只有第二种情况如下:
A.findAll({
include: [{ model: B, where: { x: 7 } }]
})
但是如何将两个查询合并到我想要的那个?
答案 0 :(得分:7)
你可以做这样的事情
A.findAll({
include: [{model: B},{model: C}],
where: {
'$or':{
'$b.x$': 7,
'$c.z$': "test"
}
});