以下不起作用,其中 Group
和 User
模型具有 N:M 关系:
var user_list = ["bob", "alice", "carol"];
Group.find({ where: { id: 1 }, include: [ { model: User, as: 'users' }]).then(function(group) {
// Find group users that are also in user_list
group.users.findAll({ where: { name: user_list }).then(function(affectedRows) {
// Do stuff with affectedRows
});
// Find group users not in user_list
group.users.findAll({ where: { name: { not: user_list } } }).then(function(affectedRows) {
// Do stuff with affectedRows
});
});
错误是:
Possibly unhandled TypeError: Object [object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance] has no method 'findAll'
我试图根据给定的列表获得 UNION 和 EXCEPT。有没有办法在不让 Sequelize 使用原始 SQL 的情况下做到这一点?
最佳答案
group.users
是一个行数组 - 不是一个可以调用方法的模型。
如果你想过滤用户,你应该使用 Array.filter
并在纯 javascript 中进行过滤
关于javascript - 在 Sequelize 中预先加载模型上的 findAll()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28291747/