$log(聚合)
定义
行为
默认返回类型是 double
。如果至少有一个操作数是 decimal
,则返回类型为 decimal。
如果任一参数解析为 null
的值或引用了缺失的字段,$log
会返回 null
。如果任一参数解析为 NaN
,$log
会返回 NaN
。
例子 | 结果 |
---|---|
{ $log: [ 100, 10 ] } | 2 |
{ $log: [ 100, Math.E ] } 其中Math.E 是e的JavaScript表示形式。 | 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 }