MongoDB 3.7聚合管道中如何合并两个对象数组?
MongoDB聚合管道合并两个对象数组为一个data数组
你需要的合并操作可以直接用$concatArrays实现,它完全支持合并对象数组,之前的误解是多余的。直接在一个$addFields阶段里完成合并即可,避免分两次赋值导致覆盖:
{ $addFields: { data: { $concatArrays: ["$services", "$sections"] } } }
说明:
$concatArrays接受任意数量的数组作为参数,会按传入顺序将它们的元素合并成一个新数组,不管数组元素是简单值还是复杂对象都适用。- 你之前分两次用
$addFields给data赋值,后一次的操作会直接覆盖前一次的结果,这就是为什么无法得到合并后的数组。 - MongoDB 3.7版本完全支持
$concatArrays,该操作符从3.2版本就已引入,无需担心版本兼容问题。
内容的提问来源于stack exchange,提问作者Eviane
相关产品推荐
相关产品推荐

