$log(集計)
定義
$log
指定した基数の数値のログを計算し、その結果を double として返します。
$log
の構文は次のとおりです。{ $log: [ <number>, <base> ] } <number>
式は、負でない数に変換される限り、有効な式であれば何でも使用できます。<base>
式は、1
より大きい正の数に解決される限り、任意の有効な式にすることができます。式の詳細については、「式 」を参照してください。
動作
引数が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 } ] )
次の例では、ログ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 }