如何使用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
相关产品推荐
相关产品推荐

