定义
返回单个数组,该数组将一组文档中一个字段的数组值连接起来。
$concatArrays 累加器可在以下阶段使用:
注意
消歧
本页介绍了 $concatArrays 用作 累加器 时的情况。累加器返回对一组输入文档计算的单一聚合值。
您还可以在这些其他上下文中使用 $concatArrays:
$concatArrays (expression), 即在单个文档中将两个或更多个数组合并成单个数组。$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 仅支持数组和解析为大量的表达式。