定義
ドキュメントのグループ全体にわたるフィールドの配列値を連結する単一の配列を返します。
$concatArraysアキュムレータは、次のステージで使用できます。
注意
曖昧さ回避
このページでは、アキュムレータとして使用する場合の$concatArrays について説明します。アキュムレータは、入力ドキュメントのグループにわたる単一の集計値を返します。
次の他のコンテキストでは $concatArrays を使用することもできます。
$concatArrays (expression)は、2 つ以上の配列を単一のドキュメント内の 1 つの配列に連結します。$concatArrays (window function)$setWindowFieldsは、ドキュメントのウィンドウ全体でフィールドの配列値を連結するために ステージで使用されます。
構文
{ $concatArrays: "<array field>" }
動作
null であるか、null に解決される引数は結果に含まれます。欠落しているフィールドを参照する引数は結果に含まれません。
例
以下の例では、sample_mflix サンプル データセットの movies コレクションを使用します。このデータセットを配置にロードする方法について詳しくは、「サンプル データセットのロード」を参照してください。
この例では、$concatArrays を使用して、公開年ごとにグループ化された映画の genres 配列を連結します。
db.movies.aggregate( [ { $match: { year: { $in: [1928, 1929] } } }, { $group: { _id: "$year", combinedGenres: { $concatArrays: "$genres" } } }, { $sort: { _id: 1 } } ] )
この操作では、 を使用して$match 1928と にリリースされた映画を選択し、その結果を1929year でグループ化します。combinedGenres genresフィールドは、各年グループ内のすべての映画の 配列を連結します。
制限
$concatArrays は、配列と配列に解決される式のみをサポートします。