首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB查询中的多级分组

MongoDB查询中的多级分组
EN

Stack Overflow用户
提问于 2020-12-09 14:16:09
回答 1查看 86关注 0票数 0

我正在尝试编写一个查询,它将给出多级分组的结果。

如下所示:

代码语言:javascript
复制
firstLevel: [
    {
       SecondLevel-1:
       [
              {//Some Data},
              {//Some Data}
       ]
    },
    {
       SecondLevel-2:
       [
              {//Some Data},
              {//Some Data}
       ]
    }
]

下面是我的MongoPlayGround地址

https://mongoplayground.net/p/b7VzoXavw9r

我能够得到第一级分组,尽管我想要以下格式的结果。

代码语言:javascript
复制
    [
  {
    "section-1": [
      {
        "terminal-1":[
                {
            "_id": ObjectId("5e93fea52f804ab99b12e7c0"),
            "isActive": true,
            "isDelete": false
          },
          {
            "_id": ObjectId("5e93fea52f804ab99b12e7c1"),
            "isActive": true,
            "isDelete": false
          }
        ]
      },
      "terminal-2":[
                {
                     "_id": ObjectId("5e93fea52f804ab99b12e7c2"),
                    "isActive": true,
                    "isDelete": true
                }
        ]
    ]
  }
]
EN

回答 1

Stack Overflow用户

发布于 2020-12-09 16:58:20

  • $groupsectionterminal生成唯一的对象数组,并将终端
    • $group的键值对转换为sectionterminal数组,在转换为section

    后替换根中的object

代码语言:javascript
复制
db.settings.aggregate([
  {
    $group: {
      _id: {
        section: "$section",
        terminal: "$terminal"
      },
      v: {
        $addToSet: {
          _id: "$_id",
          isActive: "$isActive",
          isDelete: "$isDelete"
        }
      }
    }
  },
  {
    $group: {
      _id: "$_id.section",
      v: {
        $push: { k: "$_id.terminal", v: "$v" }
      }
    }
  },
  {
    $replaceRoot: {
      newRoot: {
        $arrayToObject: [[
            {
              k: "$_id",
              v: { $arrayToObject: "$v" }
            }
        ]]
      }
    }
  }
])

Playground

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

https://stackoverflow.com/questions/65211577

复制
相关文章

相似问题

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