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

MongoDB如何将两个$or查询条件通过$and逻辑符合并?

修正方案

你原有写法不生效的核心原因是先后两次给query.$or赋值,后一次赋值会直接覆盖前一次的OR条件,导致第一个匹配逻辑丢失,若之前赋值的$or字段未清理,也会和后续的$and逻辑产生冲突。

可直接运行的代码(完整保留option1、option2原有写法)

// 保留option1原有逻辑,单独存储为变量
const option1 = [{ title: searchWord }, { content: searchWord }]; 
// 保留option2原有逻辑,单独存储为变量,注意两个category请替换为你实际要匹配的两个不同分类值
const option2 = [{ category: categoryA }, { category: categoryB }];

// 清空原有query避免旧字段干扰,合并为需要的AND逻辑
query = {};
query.$and = [
  { $or: option1 },
  { $or: option2 }
];

逻辑说明

上述写法完全符合MongoDB查询语法,最终执行的逻辑和你要求的规则完全一致:

(title匹配搜索词 OR content匹配搜索词) AND (分类匹配第一个值 OR 分类匹配第二个值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:15:04