首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDB -使用聚合管道将多个输入文档合并为一个输出文档

MongoDB -使用聚合管道将多个输入文档合并为一个输出文档
EN

Stack Overflow用户
提问于 2021-01-28 02:26:12
回答 1查看 25关注 0票数 0

我在上面看到了一些问题,看起来和我的问题很相似,但我找不到我的问题的答案。如果有,请指给我看。

在我的聚合管道中,有许多文档是分组阶段的输出,如下所示:

代码语言:javascript
运行
复制
{
  _id: "2019-06",
  revenue: 20391.71
},
{
  _id: "2019-03",
  revenue: 10190.44
},
...

_id键对应月份,revenue对应收入。

我希望获得一个包含上述所有信息的文档,如下所示:

代码语言:javascript
运行
复制
{
  "2019-03": 10190.44,
  "2019-06": 20391.71,
  ...
}

这个操作看起来应该很容易做,但是我不能理解$mergeObjects,它似乎是一个明显的候选者。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-28 02:50:09

您可以使用arrayToObject,只需稍加修改即可

代码语言:javascript
运行
复制
db.collection.aggregate([
  {
    "$group": {
      _id: null,
      data: {
        $push: {
          "k": "$_id",
          "v": "$revenue"
        }
      }
    }
  },
  {
    "$project": {
      "res": {
        "$arrayToObject": "$data"
      },
      "_id": 0
    }
  }
])

playground

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

https://stackoverflow.com/questions/65925149

复制
相关文章

相似问题

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