$add (加算)

最終更新:2026-10-09

$add (加算)

$add は集計式の中で加算を行います。複数の数値を足し合わせたり、日付にミリ秒数を加えたり、日付とミリ秒から新しい日付を返したりできます。$project、$addFields、$set で、価格に税を加えた合計などの算出によく使われます。引数は 2 要素以上の配列で渡します。いずれかの引数が null または欠落していると、式全体が null を返します。2 つの日付のミリ秒差を求めるには、$subtract を使います。

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

📝 構文

{ $add: [ <expression1>, <expression2>, ... ] }

⚙️ パラメータ

オペランド数値、日付、またはそれらに解決される式。少なくとも2つ。

戻り値:数値の合計。日付にミリ秒を加算すると日付を返します

▶ 例

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

// $add: 税込み合計を計算
db.orders.aggregate([
  { $project: {
      total: { $add: ['$price', '$tax'] }
  } }
])

出力:

{ '_id': 1, 'total': 110 }
{ '_id': 2, 'total': 55 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$add と $sum の違いは?
A$sum は $group 内でドキュメント横断の合計を出すアキュムレータです。$add は配列内の値を足す汎用の式です。
Q$add で日付に日数を加算できますか?
A直接はできません。数値はミリ秒として扱われます。先に 86400000 を掛けるか、明確さのために $dateAdd の day 単位を使います。
Q$add が null に遭遇するとどうなりますか?
Aいずれかの引数が null または欠落なら結果は null になります。デフォルトが必要な場合は $ifNull で包んでください。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%