$concatArrays (配列の連結)
最終更新:2026-10-09
$concatArrays (配列の連結)
$concatArrays は 2 つ以上の配列を連結して 1 つの新しい配列にします。タグリストの統合、履歴レコードの結合、ページングデータの連結などによく使われます。すべての引数が配列に解決される必要があり、いずれかが null または欠落していると結果全体が null になります。元の配列を変更せず新しい配列を返すため、$addFields や $project でのフィールド構築に最適です。文字列だけを連結する $concat とは違い、$concatArrays は配列のみを扱います。
| カテゴリ | 配列 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $concatArrays: [ <array1>, <array2>, ... ] }
⚙️ パラメータ
| 配列 | マージする配列式。少なくとも2つ。 |
|---|
戻り値:マージされた新しい配列。いずれかの引数が null または欠落している場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $concatArrays: タグと別名を統合
db.products.aggregate([
{ $project: {
allTags: { $concatArrays: ['$tags', '$aliases'] }
} }
])
出力:
{ '_id': 1, 'allTags': [ 'a', 'b', 'c', 'd' ] }
📌 注意事項
- すべての引数は配列でなければならない。文字列は先に $split で分割するか $concat で連結する
- 1 つでも null があると結果全体が null — $ifNull でガードする
- 新しい配列を返し、元のドキュメントは変更しない
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$concatArrays は文字列を連結できますか?
Aいいえ — 配列のみを受け付けます。文字列の連結には $concat を使うか、先に配列へ分割してください。
Q引数が null の場合は?
A結果全体が null になります。$ifNull で空配列に置き換えてください。
Q$push との違いは?
A$push は $group 内で要素を蓄積します。$concatArrays は式の中の既存配列を連結します。