$bitOr(按位或)
最后更新:2026-10-09
$bitOr(按位或)
$bitOr对整数做按位或运算,接受一个整数数组(或单个数),MongoDB 6.3起可用。常用于位标志组合、权限合并等场景,例如把多个权限位合并成一个整数。任一参数为null或缺失时返回null;操作数必须是int32或int64,其他类型报错。与$bitAnd相比,$bitOr用于置位而不是查位,二者配合可实现完整的位掩码读写。
| 分类 | 数学 |
|---|---|
| MongoDB 版本 | 6.3+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $bitOr: [ <整数1>, <整数2>, ... ] }
⚙️ 参数
| 整数 | int32或int64整数,或解析为整数的表达式,至少两个。 |
|---|
返回值:所有操作数按位或的结果;null或缺失返回null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $bitOr:合并读、写两个权限位
db.users.aggregate([
{ $project: {
combined: { $bitOr: ['$permRead', '$permWrite'] }
} }
])
运行结果:
{ '_id': 1, 'combined': 6 }
{ '_id': 2, 'combined': 3 }
📌 注意事项
- 仅支持int32和int64
- 任一参数为null或缺失,结果返回null
- 与$bitAnd配合可实现位掩码读写
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$bitOr和$bitAnd的区别?
A$bitOr把任一为1的位输出为1(置位),$bitAnd要求两者都为1(查位)。
Q$bitOr能合并权限吗?
A能,把各权限位做或运算即可合并为一个整数。
Q$bitOr对null返回什么?
A任一参数为null或缺失,结果返回null。