$not(取反)

最后更新:2026-10-09

$not(取反)

$not 对操作符表达式取反,返回不满足内部条件的文档。`{ price: { $not: { $gt: 50 } } }` 匹配价格不大于 50 的文档。注意:$not 不能直接匹配字段缺失的文档(字段缺失时条件视为不满足);且内部必须是操作符表达式,不能是正则字面量。

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

📝 语法

{ <字段>: { $not: { <操作符表达式> } } }

⚙️ 参数

字段要匹配的文档字段名。
操作符表达式被取反的操作符条件,如 { $gt: 50 }。

返回值:匹配的文档游标

▶ 示例

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

// $not:价格不大于 50
db.products.find({ price: { $not: { $gt: 50 } } })

// 等价写法:$lte 更直白
db.products.find({ price: { $lte: 50 } })

运行结果:

// 返回价格不大于 50 的商品;字段缺失的商品不会返回

📌 注意事项

📚 相关教程

❓ 常见问题

Q$not 和 $ne 有什么区别?
A$ne 是「不等于某个值」;$not 是对操作符表达式整体取反,如 { $not: { $gt: 50 } }。
Q$not 会匹配字段不存在的文档吗?
A不会。字段缺失时内部条件不成立,取反后仍不匹配。
Q$not 能对正则取反吗?
A可以写成 { $not: { $regex: '...' } },但不能直接写 { $not: /pattern/ }。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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