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

标签 javascript node.js postgresql sequelize.js

以下不起作用,其中 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
   });

});

错误是:

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/

相关文章:

mysql - 如何使用表中不同数量的列来设计数据库

javascript - 在javascript中动态创建表未正确显示列

javascript - 执行JavaScript "in the background"

javascript - 在 JS 模板字符串中转义 ${} 的正确方法

javascript - 为什么 JavaScript Promises 有时既不使用 .catch 也不使用 .then?

javascript - 我可以将参数传递给 gulp 任务吗?

javascript - AngularJS:如何制作一个波动的进度条?

javascript - 有没有一种方法可以在 testcafe 中运行测试而不自动在 URL 前面插入本地主机

postgresql - postgres 将多对一连接数据中的不同表列求和

sql - 为什么我的 SQL 查询不使用索引?