$nor(非或)

最后更新:2026-10-09

$nor(非或)

$nor 组合多个条件,所有条件都不满足的文档才返回。`{ $nor: [ { price: 1.99 }, { sale: true } ] }` 匹配既不是 1.99 元、也不在促销的商品。与 $or 相反。注意坑:字段缺失时条件视为不满足,因此 $nor 会意外返回大量字段缺失的文档。

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

📝 语法

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

⚙️ 参数

条件数组多个查询条件文档,全部不满足才匹配。

返回值:匹配的文档游标

▶ 示例

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

// $nor:价格不是 1.99 且不在促销
db.products.find({
  $nor: [
    { price: 1.99 },
    { sale: true }
  ]
})

运行结果:

// 返回既不等于 1.99 也不在促销的商品;注意缺失 sale 字段的也会返回

📌 注意事项

📚 相关教程

❓ 常见问题

Q$nor 和 $not 有什么区别?
A$nor 对多个查询条件取「全部不满足」;$not 对单个字段的操作符表达式取反。
Q$nor 为什么返回了字段缺失的文档?
A因为缺失字段不满足任何条件,而 $nor 要求所有条件都不满足,所以被包含。
Q$nor 能嵌套 $or 吗?
A能,$nor 数组里的每个元素都可以是复杂表达式。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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