MongoDB $concatArrays 运算符介绍
在 MongoDB 的聚合管道中, $concatArrays
运算符用于将两个或多个数组合并成一个数组。
语法
$concatArrays
运算符的语法如下:
{ `$concatArrays` : [ <expression1>, <expression2>, ... ] }
其中,<expression1>
, <expression2>
, 是要合并的数组表达式。
使用场景
$concatArrays
运算符适用于需要合并多个数组的聚合操作。例如,可以将来自不同数据源的数组合并为一个数组。
示例
示例 1
下面的聚合管道将来自 sales 和 expenses 两个集合的数据合并为一个数组:
db.sales.aggregate([
{
$lookup:
{
from: "expenses",
localField: "quarter",
foreignField: "quarter",
as: "expenses"
}
},
{
$project:
{
_id: 0,
quarter: 1,
sales: 1,
expenses: "$expenses.amount"
}
},
{
$project:
{
_id: 0,
data: { `$concatArrays` : [ "$sales", "$expenses" ] }
}
}
])
运行上述聚合管道后,得到的结果如下所示:
{ "data" : [ 100, 200, 300, 50, 75, 100 ] }
示例 2
下面的聚合管道使用 $concatArrays
运算符将一个文档中的两个数组合并成一个数组:
db.collection.aggregate([
{
$project:
{
_id: 0,
merged: { `$concatArrays` : [ "$array1", "$array2" ] }
}
}
])
假设原始文档如下所示:
{ "array1" : [ 1, 2, 3 ], "array2" : [ 4, 5, 6 ] }
运行上述聚合管道后,得到的结果如下所示:
{ "merged" : [ 1, 2, 3, 4, 5, 6 ] }
结论
$concatArrays
运算符可以将多个数组合并为一个数组,适用于需要处理多个数组的聚合操作。