$last (最後のアキュムレータ)
最終更新:2026-10-09
$last (最後のアキュムレータ)
$last は、グループの最後のドキュメントのフィールドを返すアキュムレータです — $first と対称で、同様に順序に依存します。代表的な用途は、グループごとの最新レコードの取得です。$setWindowFields ではウィンドウ演算子としても使えます。
| カテゴリ | アキュムレータ |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $group: { _id: <key>, last: { $last: "$field" } } }
戻り値:グループ内の最後のドキュメントのフィールド値(入力順)
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $last: アイテムごとに最新レコードの価格
db.sales.aggregate([
{ $sort: { date: 1 } },
{ $group: { _id: '$item', lastPrice: { $last: '$price' } } }
])
出力:
{ "_id": "Pen", "lastPrice": 50 }
📌 注意事項
- $first と対称で、順序依存も同じ
- 定番の最新レコード取得: 時刻の昇順で $sort して $last
- $setWindowFields のウィンドウ演算子として動作する
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qグループごとの最新レコードはどう取得しますか?
A時刻の昇順で $sort し、$group 内で $last を使って最新の値を取得します。
Q$last をソートせずに使うとどうなりますか?
A入力順の最後のドキュメントを返すだけで、通常は意味をなしません。
Q$last と $top の違いは?
A$top はソート規則に従って最良を取ります。$last は入力順の末尾を取ります。意味が異なります。