$concatArrays (配列結合)
最終更新:2026-10-09
$concatArrays (配列結合)
$concatArrays は、複数の配列を重複除去せずに 1 つに結合します。配列演算として $project や $addFields でよく使われ、MongoDB 8.1 以降は $group のアキュムレータとしても機能し、グループ全体の配列フィールドを連結します。$setUnion と違い、重複は保持されます。
| カテゴリ | アキュムレータ |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $concatArrays: [ <array1>, <array2>, ... ] }
戻り値:すべての入力配列を連結した新しい配列(重複は保持)
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $concatArrays: $project でタグを追加
db.products.aggregate([
{ $project: { allTags: { $concatArrays: ['$tags', ['hot']] } } }
])
出力:
{ "_id": 1, "allTags": ["a", "b", "hot"] }
📌 注意事項
- 重複は除去されない — すべての要素が保持される
- 全入力が配列でないとエラーになる
- MongoDB 8.1 以降、$group のアキュムレータとして使える
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$concatArrays は重複を除去しますか?
Aいいえ。重複が必要な場合は $setUnion を使います。
Q入力が配列でない場合は?
Aエラーになります。全入力が配列である必要があります。先に $isArray で確認します。
Q$group のアキュムレータとして使えますか?
AMongoDB 8.1 以降は使えます。グループ全体の配列フィールドを連結します。