$top (上位アキュムレータ)

最終更新:2026-10-09

$top (上位アキュムレータ)

$top は、指定したソート順序に従ってグループの先頭ドキュメントを返すアキュムレータです — 単一フィールドではなくドキュメント全体を返し、MongoDB 5.2 以降で利用できます。順序は $group の sortBy に由来し、$first と違い入力順には依存しません。複数個ほしい場合は $topN を使います。

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

📝 構文

{ $group: { _id: <key>, top: { $top: { sortBy: { <field>: <1 or -1> }, output: <expression> } } } }

戻り値:sortBy 順でグループの先頭ドキュメント

▶ 例

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

// $top: sortBy によるアイテムごとの最高価格
db.sales.aggregate([
  { $group: { _id: '$item', top: { $top: { sortBy: { price: -1 }, output: '$price' } } } }
])

出力:

{ "_id": "Pen", "top": 80 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$top と $first の違いは?
A$top は明示的なソート規則で最良を取ります。$first は入力順に従います。
Q$top にはどのバージョンが必要ですか?
AMongoDB 5.2 以降が必要です。
Q$top はドキュメント全体を返せますか?
Aはい。output を省略するとドキュメント全体を返します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%