$bitNot(按位取反)

最后更新:2026-10-09

$bitNot(按位取反)

$bitNot对整数做按位取反(补码运算),是位运算中唯一只接受一个操作数的操作符,MongoDB 6.3起可用。结果等于-x-1,例如5取反得-6。常用于生成互补掩码、位运算中的取反操作等场景。参数为null或缺失时返回null;操作数必须是int32或int64。注意取反后数值符号会翻转,这里是补码语义而非简单的反码。

分类数学
MongoDB 版本6.3+
示例语言mongosh (Shell)

📝 语法

{ $bitNot: <整数表达式> }

⚙️ 参数

整数int32或int64整数,或解析为整数的表达式。

返回值:输入整数的按位取反(-x-1);null或缺失返回null

▶ 示例

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

// $bitNot:权限位取反生成排除掩码
db.users.aggregate([
  { $project: {
      denied: { $bitNot: '$allowedBits' }
  } }
])

运行结果:

{ '_id': 1, 'denied': -6 }
{ '_id': 2, 'denied': -1 }

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q$bitNot(5)等于多少?
A等于-6,因为补码取反的公式是-x-1。
Q$bitNot为什么结果带负号?
A补码取反会翻转最高位,导致符号位变化。
Q$bitNot能用在哪?
A生成互补掩码,或与其他位运算组合实现位集合操作。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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