findAll() 在 Sequelize 中预先加载的模型上

findAll() on eager loaded models in Sequelize?

本文关键字:加载 模型 Sequelize findAll      更新时间:2023-09-26

以下内容不起作用,其中GroupUser模型具有 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
   });
});

错误是:

可能未处理的类型错误: 对象 [对象 SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance],[object SequelizeInstance] 没有方法 'findAll'

我正在尝试根据给定的列表获得 UNION 和 EXCEPT 。有没有办法在不让 Sequelize 使用原始 SQL 的情况下做到这一点?

group.users是一个

行数组 - 不是可以调用方法的模型。

如果你想过滤用户,你应该使用Array.filter并在纯javascript中进行过滤