$bottom (下位アキュムレータ)
最終更新:2026-10-09
$bottom (下位アキュムレータ)
$bottom は、指定したソート順序に従ってグループの末尾ドキュメントを返すアキュムレータです — ドキュメント全体を返し、$top と対称で、MongoDB 5.2 以降で利用できます。順序は $group の sortBy に由来し、入力順には依存しません。典型的にはグループごとの最低スコアや最古のレコードを取ります。
| カテゴリ | アキュムレータ |
|---|---|
| MongoDB バージョン | 5.2+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $group: { _id: <key>, bottom: { $bottom: { sortBy: { <field>: <1 or -1> }, output: <expression> } } } }
戻り値:sortBy 順でグループの末尾ドキュメント
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $bottom: sortBy によるアイテムごとの最低価格
db.sales.aggregate([
{ $group: { _id: '$item', bottom: { $bottom: { sortBy: { price: 1 }, output: '$price' } } } }
])
出力:
{ "_id": "Pen", "bottom": 20 }
📌 注意事項
- MongoDB 5.2 以降が必要
- $top と対称。意味は sortBy の方向に依存
- output を省略するとドキュメント全体を返す
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$bottom と $min の違いは?
A$min は最小値を返します。$bottom は末尾のドキュメント全体または式の結果を返します。
Q最古のレコードはどう取得しますか?
A時刻の昇順で sortBy すれば、$bottom が最古を、$top が最新を取ります。
Q$bottom にはどのバージョンが必要ですか?
AMongoDB 5.2 以降が必要です。