$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 }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Qグループごとの最新レコードはどう取得しますか?
A時刻の昇順で $sort し、$group 内で $last を使って最新の値を取得します。
Q$last をソートせずに使うとどうなりますか?
A入力順の最後のドキュメントを返すだけで、通常は意味をなしません。
Q$last と $top の違いは?
A$top はソート規則に従って最良を取ります。$last は入力順の末尾を取ります。意味が異なります。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%