如何在Sequelize中创建[Op.ne]与[Op.and]的嵌套查询?
在Sequelize中构建包含[Op.ne]和[Op.and]的嵌套查询
你提供的代码写法存在逻辑问题,[Op.ne]无法直接通过条件数组实现“与”逻辑。要实现同时满足status不等于'Drop',且关联表User的hasDuplicate不等于0的查询,需将两个独立的[Op.ne]条件放入[Op.and]数组中。
正确代码示例
先确保已导入Sequelize操作符:
const { Op } = require('sequelize');
再构建查询的where条件:
where: { [Op.and]: [ { status: { [Op.ne]: 'Drop' } }, { '$User.hasDuplicate$': { [Op.ne]: 0 } } ] }
逻辑说明
[Op.and]:指定数组内所有条件必须同时成立{ status: { [Op.ne]: 'Drop' } }:筛选status字段不等于'Drop'的记录{ '$User.hasDuplicate$': { [Op.ne]: 0 } }:筛选关联表User中hasDuplicate字段不等于0的记录(需提前配置好模型关联,且查询时包含include: ['User'])
若你实际需求是“status不等于'Drop' 或者 User.hasDuplicate不等于0”,只需将[Op.and]替换为[Op.or]:
where: { [Op.or]: [ { status: { [Op.ne]: 'Drop' } }, { '$User.hasDuplicate$': { [Op.ne]: 0 } } ] }
内容的提问来源于stack exchange,提问作者denise
相关产品推荐
相关产品推荐

