You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:39:45