$log2(二底对数)

最后更新:2026-10-09

$log2(二底对数)

$log2返回数值以2为底的对数,常用于二分查找深度、二叉树高度、位宽计算等计算机场景,例如判断一个数需要多少二进制位。参数为null或缺失时返回null;输入必须大于0,0或负数返回null。它是$log的特例,底数固定为2,代码更简洁。$log2是2的幂运算的逆运算,与$pow: [2, x]互为反操作。

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

📝 语法

{ $log2: <数值表达式> }

⚙️ 参数

数值数值或解析为数值的表达式,必须大于0。

返回值:输入以2为底的对数;非正数、null或缺失时返回null

▶ 示例

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

// $log2:判断整数需要多少二进制位
db.numbers.aggregate([
  { $project: {
      bits: { $ceil: { $add: [{ $log2: '$value' }, 1] } }
  } }
])

运行结果:

{ '_id': 1, 'bits': 10 }
{ '_id': 2, 'bits': 8 }

📌 注意事项

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

📚 相关教程

❓ 常见问题

Q$log2在什么场景用?
A二分查找、二叉树深度、位宽估算等计算机场景。
Q$log2(1024)等于多少?
A等于10,因为2的10次方是1024。
Q$log2和$pow是什么关系?
A互为逆运算,$pow: [2, x]求2的x次方,$log2求反向。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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