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

如何在Sequelize中使用$and实现多参数全匹配查询?

在Sequelize中用$and实现多条件精准匹配

嘿,其实你当前的代码已经在做同时匹配三个ID才返回结果的操作啦!Sequelize默认会把query里的多个查询条件用AND逻辑组合起来,不过如果你想显式用$and(或者新版本的Op.and)来明确这个逻辑,我给你两种写法参考:

情况1:使用Sequelize v5及以上版本(推荐)

新版本的Sequelize已经改用Op操作符来定义逻辑关系了,步骤如下:

  1. 先导入Op:
const { Op } = require('sequelize');
  1. 修改你的查询代码(如果是FeathersJS这类框架,保持query字段;原生Sequelize用where字段):
const Request = await context.service.Model.findOne({
  query: {
    [Op.and]: [
      { formId: 2 },
      { respondentId: 252 },
      { recipientId: 197 }
    ]
  }
});

情况2:使用Sequelize v4及更早版本

旧版本支持直接用$and关键字,写法更直观:

const Request = await context.service.Model.findOne({
  query: {
    $and: [
      { formId: 2 },
      { respondentId: 252 },
      { recipientId: 197 }
    ]
  }
});

小补充

其实你原来的代码{ query: { formId: 2, respondentId: 252, recipientId: 197 } }和上面两种写法的效果完全一样,因为Sequelize默认会把多个平级的查询条件自动用AND逻辑关联。显式写$and/Op.and主要是为了代码可读性更强,或者在复杂查询场景(比如混合AND和OR逻辑)下明确逻辑关系。

内容的提问来源于stack exchange,提问作者user13094449

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 11:47:42