$bitXor(按位异或)

最后更新:2026-10-09

$bitXor(按位异或)

$bitXor对整数做按位异或运算,接受一个整数数组(或单个数),MongoDB 6.3起可用。异或的规则是相同为0、不同为1,常用于数据校验、位翻转、加密混淆等场景,例如用密钥对数值做简单异或处理。任一参数为null或缺失时返回null;操作数必须是int32或int64。注意同一个值异或两次会还原,这是异或可逆性的典型用法。

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

📝 语法

{ $bitXor: [ <整数1>, <整数2>, ... ] }

⚙️ 参数

整数int32或int64整数,或解析为整数的表达式,至少两个。

返回值:所有操作数按位异或的结果;null或缺失返回null

▶ 示例

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

// $bitXor:用255翻转低8位
db.users.aggregate([
  { $project: {
      masked: { $bitXor: ['$score', 255] }
  } }
])

运行结果:

{ '_id': 1, 'masked': 200 }
{ '_id': 2, 'masked': 155 }

📌 注意事项

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

📚 相关教程

❓ 常见问题

Q$bitXor的规则是什么?
A对应位相同得0、不同得1,例如5与3异或得6。
Q$bitXor能做什么用?
A位翻转、简单校验和、轻量混淆等场景。
Q为什么异或两次能还原?
A异或满足自反性,x异或k再异或k仍等于x。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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