Node.js - Sequelize.js 嵌套关联检查外部 where 条件 - 未定义

标签 node.js associations sequelize.js where-clause nested-query

使用Sequelize版本实现:“^4.15.0”

我正在尝试从包含的关联的 2 级往下添加一个 where 条件。

Model1.find({
    include: [
       {
           model: Model2,
           as: 'model2_alias',
           attributes: [
               'model2_id'
           ],
           include: [{
               model: Model3,
               as: 'model3_alias',
               attributes: [
                   'model3_id'
               ]
           }]
       }
    ],
    where: {
        model3_alias.id: { [Op.in]: [1, 2, 3] }
    }
});

我厌倦了这个方法:

where: {
    '$model2_alias.model3_alias.id$': { [Op.in]: [1, 2, 3] }
}

但是给出了 model2_alias.model3_alias.id 未定义/未找到的错误。

当写成 '$model2_alias.id$': { [Op.in]: [1, 2, 3] } 时上面确实有效所以语法必须写但是如何去一个更多级别。

在任何 MySQL 管理工具中执行形成的 SQL 语句时,都会给出正确的结果,因此我试图实现的 where 条件也没有错。

任何想法我在这里遗漏了什么或者这只适用于一个级别。那么更多关卡怎么办?

最佳答案

您可以像这样在任何级别添加 where -

Model.find({
    where : { 
    // where 1
    },
    include : [{
        model : Model1,
        where : {
        // Where 2
        },
        include : [{
            model : Model2,
            where : {
            // Where 3
            }
        }]
    }]

});

希望对您有所帮助!

关于Node.js - Sequelize.js 嵌套关联检查外部 where 条件 - 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48741752/

相关文章:

node.js - 当第一首歌曲流完成时如何修复 "Stream is not generating quickly enough"错误?

node.js - 无法在 typescript 构建中包含 .key 文件

node.js - Sequelize 中的批量插入 hasMany() 关联

ruby-on-rails - 创建模型实例时如何建立 has_and_belongs_to_many 关联

node.js - TypeError : sequelize. 导入不是函数

javascript - "TypeError: Cannot read property ' 创建 ' of undefined"

node.js - 错误: write after end in request npm library

javascript - 计算两点之间的最短路径

ruby-on-rails - 如何最好地在 Rails 中建模预订/约会数据库

node.js - 嵌套循环续写 Node.js 中的每条记录