$lastN (末尾 N アキュムレータ)

最終更新:2026-10-09

$lastN (末尾 N アキュムレータ)

$lastN は、グループの末尾 N ドキュメント(入力順)のフィールドの配列を返すアキュムレータで、$firstN と対称で、MongoDB 5.2 以降で利用できます。グループごとの最新 N レコードの取得によく使われ、順序に依存するため先に $sort します。n は定数式にもできます。

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

📝 構文

{ $group: { _id: <key>, lastN: { $lastN: { input: <expression>, n: <number> } } } }

戻り値:グループの最後の N ドキュメントの式値の配列

▶ 例

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

// $lastN: アイテムごとに最新の 3 レコードの価格
db.sales.aggregate([
  { $sort: { date: 1 } },
  { $group: { _id: '$item', last3: { $lastN: { input: '$price', n: 3 } } } }
])

出力:

{ "_id": "Pen", "last3": [50, 55, 60] }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Qグループごとの最新 N 件はどう取得しますか?
A時刻の昇順で $sort し、$group 内で $lastN を使います。
Q$lastN と $bottomN の違いは?
A$lastN は入力順の末尾を取ります。$bottomN は sortBy 規則による下位 N を取ります。
Qソートしない場合は?
A結果は入力順の末尾だけになり、意味をなしません。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%