定義
ドキュメントのグループにわたって、フィールドの配列値を連結した単一の配列を返します。
$concatArrays アキュムレータは次のステージで使用可能です。
注意
曖昧さ回避
このページでは、$concatArrays をアキュムレータとして使用する場合について説明します。アキュムレータは、入力ドキュメントのグループ全体で単一の集計値を返します。
$concatArrays は、これらの他のコンテキストでも使用できます。
$concatArrays (expression), これにより、1 つのドキュメント内で 2 つ以上の配列を 1 つの配列に結合します。$concatArrays (window function)は、$setWindowFieldsステージで、ドキュメントのウィンドウでフィールドからの配列値を結合するために使用されます。
構文
{ $concatArrays: [ <expression1>, <expression2>, ... ] }動作
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 年と 1929 年に公開された映画を選択し、その後、結果を year でグループ化します。combinedGenres フィールドは、各年グループのすべての映画の genres 配列を連結します。
制限
$concatArrays は、配列と配列に解決される式のみをサポートします。