$max (大きい値を保持)

最終更新:2026-10-09

$max (大きい値を保持)

$max は、指定した値が現在のフィールド値より大きい場合にのみその値を書き込みます。`{ $max: { highScore: 980 } }` のように使います。フィールドが存在しない場合は作成されます。ハイスコアや史上最高記録を追跡するのに最適で、$min と対になる「最大値を維持する更新」です。

カテゴリフィールド更新
MongoDB バージョン2.6+
例の言語mongosh(シェル)

📝 構文

{ $max: { <field>: <value> } }

⚙️ パラメータ

フィールド比較して更新するフィールド。
値候補値。より大きい場合にのみ書き込まれます。

戻り値:更新結果

▶ 例

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

// $max: 増やすだけで減らさない
// 950 → 980(980 の方が大きいため)
// 990 はそのまま(980 の方が小さいため)
db.games.updateOne(
  { _id: 1 },
  { $max: { highScore: 980 } }
)

出力:

// 現在値が 980 未満の場合のみ 980 に更新され、それ以外は変更されない

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$max でハイスコアを維持するには?
A毎回 { $max: { highScore: score } } で更新します。低いスコアは自動的に無視されます。
Q$max と $set の違いは?
A$set は無条件に上書きします。$max は値が大きい場合のみ更新します。
Q$max はアトミックですか?
Aはい。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%