首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >连接集合中元素的所有数组[MongoDB]

连接集合中元素的所有数组[MongoDB]
EN

Stack Overflow用户
提问于 2019-06-05 03:25:01
回答 1查看 392关注 0票数 4

抱歉,我没有很好地获取MongoDB聚合。我如何通过聚合实现这一点:

[
  {array: [1,2,3] },
  {array: [4,5,6] },
  {array: [7,8,9] }
]


desired result:
[1,2,3,4,5,6,7,8,9]

如果我将文档视为普通对象,而不是使用MongoDB聚合,性能会发生变化吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-05 03:32:26

您可以使用$group by null来将数组数组作为单个文档来获取,然后可以使用$concatArrays运行$reduce来扁平化该数组:

db.col.aggregate([
    {
        $group: {
            _id: null,
            array: { $push: "$array" }
        }
    },
    {
        $project: {
            _id: 0,
            array: {
                $reduce: {
                    input: "$array",
                    initialValue: [],
                    in: { $concatArrays: [ "$$value", "$$this" ] }
                }
            }
        }
    }
])

MongoDB Playground

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56450138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档