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

如何使用Mongoose findOne实现两参数任一匹配的查询?

解决方案:匹配任一字段查询实体

你需要使用MongoDB的$or操作符来实现**匹配salt或emailSalt任一等于hash**的查询逻辑,替代原来默认的AND匹配规则。

修改后的代码如下:

async getIsExistingUser(hash: string) {
    const isExisting = await this.onsModel.findOne({
      $or: [
        { salt: hash },
        { emailSalt: hash }
      ]
    });

    return Boolean(isExisting);
}

说明

  • $or接收一个数组,数组内的每个对象是独立查询条件,只要满足其中任意一个,就会返回匹配的文档
  • 原代码中直接写salt: hash, emailSalt: hash等价于MongoDB的$and逻辑,要求两个条件同时满足,这就是之前只能查到同时匹配两个字段数据的原因

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:35:18