$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 に更新され、それ以外は変更されない
📌 注意事項
- フィールドがなければ作成される
- ランキングの最高記録やレコード更新に最適
- $min と組み合わせてデータの範囲を維持できる
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$max でハイスコアを維持するには?
A毎回 { $max: { highScore: score } } で更新します。低いスコアは自動的に無視されます。
Q$max と $set の違いは?
A$set は無条件に上書きします。$max は値が大きい場合のみ更新します。
Q$max はアトミックですか?
Aはい。