首页 > 解决方案 > Sequelize top level where with Op.or 给出错误

问题描述

我正在将包含升级到顶级“位置”,以便我可以或它:

MODEL_A.findAll({
                where: {
                    [Op.Or] : [
                        {
                            '$MODEL2_DETAIL.COLNAME$' : { [Op.eq]: 5 } 
                        }, {
                            '$MODEL3_DETAIL.COLNAME$' : { [Op.eq]: 5 }
                        }
                    ]
                },
                include: [{
                            model: MODEL2
                            as: 'MODEL2_DETAIL'
                        }, {
                            model: MODEL3,
                            as: 'MODEL3_DETAIL'
                        }
                        ]
                })

它给出了错误:

“无效值 { '$MODEL2_DETAIL.COLNAME$': { [Symbol(eq)]: 5 } }”

如果我把它放在没有 Op.Or 的情况下,它可以工作

MODEL_A.findAll({
                where: {
                            '$MODEL2_DETAIL.COLNAME$' : { [Op.eq]: 5 } 
            }                  
                }...

以上作品!还有其他建议我可以如何或在多个模型上?

https://sequelize.org/master/manual/eager-loading.html

标签: mysqlnode.jssequelize.js

解决方案


需要是 Op.or 而不是 Op.Or 谢谢@anatoly 的注意!


推荐阅读