$bottomN (下位 N アキュムレータ)

最終更新:2026-10-09

$bottomN (下位 N アキュムレータ)

$bottomN は、指定したソート順序に従ってグループごとに下位 N 個のドキュメント(または式の値)を返すアキュムレータで、$topN と対称で、MongoDB 5.2 以降で利用できます。順序は $group の sortBy に由来し、n は定数式にもできます。グループごとの下位 N や最古 N のレコード取得に向きます。

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

📝 構文

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

戻り値:グループごとの下位 N 個の値またはドキュメントの配列

▶ 例

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

// $bottomN: クラスごとの名前の下位 3 件
db.scores.aggregate([
  { $group: { _id: '$class', bottom3: { $bottomN: { sortBy: { score: 1 }, output: '$name', n: 3 } } } }
])

出力:

{ "_id": "A", "bottom3": ["Dave", "Eve", "Frank"] }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$bottomN と $topN の方向はどう決めますか?
AsortBy の方向で決まります。昇順なら $bottomN は下位の集団を取ります。
Qn は動的にできますか?
Aはい。n は式を受け付けます。
Q$bottomN はドキュメント全体を返しますか?
Aoutput を省略すればドキュメント全体、指定すれば選択フィールドを返します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%