$first (最初のアキュムレータ)
最終更新:2026-10-09
$first (最初のアキュムレータ)
$first は、グループの最初のドキュメントのフィールドを返すアキュムレータです。入力順に依存するため、$group の前の $sort(MongoDB 5.2 以降は $group 内の sortBy)が重要です。$setWindowFields ではウィンドウ演算子としても使えます。
| カテゴリ | アキュムレータ |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $group: { _id: <key>, first: { $first: "$field" } } }
戻り値:グループ内の最初のドキュメントのフィールド値(入力順)
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $first: アイテムごとに最も古いレコードの価格
db.sales.aggregate([
{ $sort: { date: 1 } },
{ $group: { _id: '$item', firstPrice: { $first: '$price' } } }
])
出力:
{ "_id": "Pen", "firstPrice": 20 }
📌 注意事項
- 順序は入力に依存する。$group の前に $sort
- $group は MongoDB 5.2 以降 sortBy をサポート
- $setWindowFields のウィンドウ演算子として使える
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$first の順序はどう保証しますか?
A$group の前に $sort するか、MongoDB 5.2 以降では $group 内の sortBy を使います。
Q$first と $min の違いは?
A$first は入力順の最初のドキュメントを取ります。$min は順序に関係なく最小の値を取ります。
Q空のグループはどうなりますか?
A空のグループは生成されません。$group は実在するグループのみを出力します。