$concatArrays
聚合运算符将多个数组连接为一个数组。
语法
{ $concatArrays: [ <array1>, <array2>, ... ] }
<array>
可以是任何可以解析为数组的表达式。- 如果表达式解析为
null
或引用的字段不存在,则返回null
。
用法
{ $concatArrays: [
[ "hello", " "], [ "world" ]
] }
结果为:
[ "hello", " ", "world" ]
{ $concatArrays: [
[ "hello", " "],
[ [ "world" ], "again"]
] }
结果为:
[ "hello", " ", [ "world" ], "again" ]
举例
在warehouses
集合中有下面的文档:
{ "_id" : 1, instock: [ "chocolate" ], ordered: [ "butter", "apples" ] }
{ "_id" : 2, instock: [ "apples", "pudding", "pie" ] }
{ "_id" : 3, instock: [ "pears", "pecans"], ordered: [ "cherries" ] }
{ "_id" : 4, instock: [ "ice cream" ], ordered: [ ] }
下面的聚合管道使用$concatArrays
运算符将instock
字段和ordered
字段合并为一个数组:
db.warehouses.aggregate([
{ $project: { items: { $concatArrays: [ "$instock", "$ordered" ] } } }
])
操作返回下面的结果:
{ "_id" : 1, "items" : [ "chocolate", "butter", "apples" ] }
{ "_id" : 2, "items" : null }
{ "_id" : 3, "items" : [ "pears", "pecans", "cherries" ] }
{ "_id" : 4, "items" : [ "ice cream" ] }