$push (配列収集アキュムレータ)

最終更新:2026-10-09

$push (配列収集アキュムレータ)

$push は、$group 中に各ドキュメントの式の結果を配列へ追加していくアキュムレータです。並び順は入力順に従います(通常は安定しません)。グループ内の詳細を 1 つのドキュメントにまとめられ、安定した順序が必要なら先に $sort します。

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

📝 構文

{ $group: { _id: <key>, items: { $push: "$field" } } }

戻り値:グループ内のすべての式結果の配列

▶ 例

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

// $push: 顧客ごとにアイテムを収集
db.orders.aggregate([
  { $group: { _id: '$cust_id', items: { $push: '$item' } } }
])

出力:

{ "_id": "A123", "items": ["Pen", "Book"] }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$push の出力順序は安定しますか?
A厳密には保証されません。順序が重要な場合はパイプラインの早い段階で $sort してください。
Q$push と $addToSet の違いは?
A$push は重複を保持します。$addToSet は重複を除去します。
Q最初の数要素だけ集めるには?
A$push の後に $slice を使うか、$group の前に $sort と $limit を使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%