定義
2 つ以上の配列を連結した 1 つの配列を返します。
注意
曖昧さ回避
このページでは、$concatArrays が式として使用される場合について説明します。これは、2 つ以上の配列を連結して 1 つのドキュメント内の 1 つの配列に連結します。
次の他のコンテキストでは $concatArrays を使用することもできます。
$concatArrays (accumulator)は、ドキュメントのグループ全体にフィールドの配列値を連結します。$concatArrays (window function)$setWindowFieldsは、ドキュメントのウィンドウ全体でフィールドの配列値を連結するために ステージで使用されます。
構文
式として使用する場合、$concatArrays は次の構文をとります。
{ $concatArrays: [ <expression1>, <expression2>, ... ] }
動作
<expression>オペランドは、配列に変換される場合は任意の有効な式にすることができます。式の詳細については、「 式 」を参照してください。
いずれかの引数がnullの値に解決されるか、欠落しているフィールドを参照する場合、 $concatArraysはnullを返します。
次の表は、$concatArrays が配列とネストされた配列を処理する方法を示しています。
例 | 結果 | |||||
|---|---|---|---|---|---|---|
| | |||||
| |
例
以下の例では、sample_mflix サンプル データセットの movies コレクションを使用します。このデータセットを配置にロードする方法について詳しくは、「サンプル データセットのロード」を参照してください。
次のパイプラインは、映画「ゴッドファッサー」の genres 配列と writers 配列を連結します。
db.movies.aggregate( [ { $match: { title: "The Godfather" } }, { $project: { _id: 0, title: 1, combinedMovieInfo: { $concatArrays: [ "$genres", "$writers" ] } } } ] )
この操作では$match を使用して "The God" を検索しますと $concatArrays を使用して、genres 配列と writers 配列を単一の combinedMovieInfo 配列に結合します。
制限
$concatArrays は、配列と配列に解決される式のみをサポートします。