MongoDB聚合运算符:$log

MongoDB聚合运算符:$log

$log聚合运算符计算指定底数和真数的对数,结果以双精度值返回。

语法

{ $log: [ <number>, <base> ] }
  • <number> 真数,可以为任何非负数的表达式
  • <base> 底数,可以为任何大于1的表达式

使用

如果任一参数解析为null或引用缺少的字段,则$log返回null。如果任一参数解析为NaN,则$log返回NaN

例如结果
{ $log: [ 100, 10 ] }2
{ $log: [ 100, Math.E ] }4.605170185988092

举例

使用下面的脚本创建integers集合:

db.integers.insertMany( [
   { _id: 1, int: 5 },
   { _id: 2, int: 2 },
   { _id: 3, int: 23 },
   { _id: 4, int: 10 }
] )

下面的示例在计算中使用log 2来确定表示int值所需的位数。

db.integers.aggregate([
   { $project: { bitsNeeded:
      {
         $floor: { $add: [ 1, { $log: [ "$int", 2 ] } ] } } }
      }
])

操作返回下面的结果:

{ "_id" : 1, "bitsNeeded" : 3 }
{ "_id" : 2, "bitsNeeded" : 2 }
{ "_id" : 3, "bitsNeeded" : 5 }
{ "_id" : 4, "bitsNeeded" : 4 }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原子星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值