$maxN (最大値 N アキュムレータ)

最終更新:2026-10-09

$maxN (最大値 N アキュムレータ)

$maxN は、グループ内のフィールドの上位 N 個の個別の最大値を配列で返すアキュムレータで、MongoDB 5.2 以降で利用できます。ソート指定は不要です — 大きい値から N 個を取ります。結果の順序は保証されません。グループごとの上位 N 値の統計に向きます。

カテゴリアキュムレータ
MongoDB バージョン5.2+
例の言語mongosh(シェル)

📝 構文

{ $group: { _id: <key>, maxN: { $maxN: { input: <expression>, n: <number> } } } }

戻り値:グループ内の上位 N 個の異なる値の配列

▶ 例

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

// $maxN: クラスごとの個別のスコア上位 3 件
db.scores.aggregate([
  { $group: { _id: '$class', topScores: { $maxN: { input: '$score', n: 3 } } } }
])

出力:

{ "_id": "A", "topScores": [98, 95, 92] }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$maxN は重複を除去しますか?
Aはい。個別の最大値の集合を返します。
Q$maxN と $topN の違いは?
A$maxN は上位 N 個の個別の値を取ります。$topN は sortBy 規則による上位 N ドキュメントを取ります。
Q結果は整列されますか?
A順序は保証されません。必要なら結果を $sort します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%