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

Kun*_*the 8 associations where-clause node.js nested-query sequelize.js

使用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] }
    }
});
Run Code Online (Sandbox Code Playgroud)

我累了这个方法:

where: {
    '$model2_alias.model3_alias.id$': { [Op.in]: [1, 2, 3] }
}
Run Code Online (Sandbox Code Playgroud)

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

上面的内容确实有效,因为'$model2_alias.id$': { [Op.in]: [1, 2, 3] }语法必须写入,但如何进一步降低级别.

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

我在这里缺少的任何想法或仅适用于一个级别.然后该怎么做更多级别?

Rah*_*hul 4

您可以在任何级别添加这样的位置 -

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

});
Run Code Online (Sandbox Code Playgroud)

希望有帮助!