我在使用sequelize查询过滤结果时遇到问题,如下所述。
用户模型:
var User = db.define('User', {
email: {
type: types.STRING,
unique: true
},
password: {
type: types.STRING
},
firstName: {
type: types.STRING
},
lastName: {
type: types.STRING
},
type: {
type: types.INTEGER
}
});
用户服务模型:
var UserServices = db.define('UserServices', {
service: {
type: types.INTEGER
}
});
var Countries = db.define('Countries', {
name: {
type: types.STRING
},
code: {
type: types.STRING(10)
}
});
关系:
User.hasMany(UserServices);
UserServices.belongsTo(User);
Countries.hasMany(User);
User.belongsTo(Countries);
问题如下:如何过滤掉属于指定国家/地区的用户,具有特定服务和指定用户类型?
我现在要做的是遵循(不按预期工作):
User.findAll({
where: {
type: 3
},
inlcude: [{
model: Countries,
where: {
id: 2
}
}, {
model: UserServices,
where: {
service: [1, 2, 3]
}
}]
}).then((user) => {
...
})