$or(或)

最后更新:2026-10-09

$or(或)

$or 组合多个查询条件,满足任意一个即返回该文档。`{ $or: [ { price: { $lt: 5 } }, { sale: true } ] }`。MongoDB 会对 $or 的每个子句尝试走索引,多个索引取并集。单个字段的多个取值场景用 $in 更高效,$or 适合不同字段间的「任一满足」逻辑。

分类逻辑
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $or: [ { <条件1> }, { <条件2> }, ... ] }

⚙️ 参数

条件数组多个查询条件文档,满足任意一个即匹配。

返回值:匹配的文档游标

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $or:价格低于 5 或正在促销
db.products.find({
  $or: [
    { price: { $lt: 5 } },
    { sale: true }
  ]
})

运行结果:

// 返回满足任一条件的商品(两个条件都满足也只返回一次)

📌 注意事项

📚 相关教程

❓ 常见问题

Q$or 和 $in 什么区别?
A$in 只能针对同一字段的多个值;$or 可组合不同字段的不同条件。同字段多值用 $in。
Q$or 会重复返回满足多个条件的文档吗?
A不会。一个文档最多返回一次,满足多个条件也只算一条结果。
Q$or 能嵌套 $and 吗?
A能,$or 数组中的每个条件都可以是 $and、$nor 等复杂表达式。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏