$log (対数)

最終更新:2026-10-09

$log (対数)

$log は、指定した底で数値の対数を返します。引数は値と底の 2 つです。$ln、$log10、$log2 と違い、底を第 2 引数で与えるため、$log: [8, 2] は 3 を返します。任意の底の対数が必要な場合をカバーします。値と底はどちらも 0 より大きく、底は 1 であってはなりません。いずれかの引数が null または欠落していると null を返します。底がちょうど 10 や 2 の場合は、明確さのために $log10 や $log2 を使うのがよいでしょう。

カテゴリ数学
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $log: [ <value>, <base> ] }

⚙️ パラメータ

数値対数を取る正の数値式。
底対数の底。0 より大きく、1 でない必要があります。

戻り値:指定された底による対数。引数が無効、null、または欠落している場合は null

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $log: 底2の対数
db.sales.aggregate([
  { $project: {
      log2x: { $log: ['$amount', 2] }
  } }
])

出力:

{ '_id': 1, 'log2x': 6.643856189774724 }
{ '_id': 2, 'log2x': 4.321928094887363 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$log の底はどう指定しますか?
A第 2 引数が底です。$log: [8, 2] は 3 を返します。
Q$log の底は 1 にできますか?
Aできません。底が 1 だと対数が未定義になり null を返します。
Q$log と $ln の違いは?
A$log は底を設定できますが、$ln は底が e に固定されています。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%