如何在MongoDB中的$ group内创建嵌套数组?

蒂亚·约瑟

在某些聚合管道阶段之后,我的MongoDB文档具有以下格式:

{
    "key": "A",
    "status": "To Do",
    "val": 4
  },
  {
    "key": "A",
    "status": "Done",
    "val": 1
  },
  {
    "key": "A",
    "status": "To Do",
    "val": 3
  },
  {
    "key": "A",
    "status": "Done",
    "val": 2
  },
  {
    "key": "B",
    "status": "Done",
    "val": 5
  },
  {
    "key": "B",
    "status": "Done",
    "val": 6
  }

预期产量:

  1. 通过...分组 key
  2. 通过...分组 status
  3. val
  {
    "key": "A",
    "status_val": [
      {
        "status": "To Do",
        "val": [
          3,
          4
        ]
      },
      {
        "status": "Done",
        "val": [
          1,
          2
        ]
      }
    ]
  },
  {
    "key": "B",
    "status_val": "Done",
    "val": [
      5,
      6
    ]
  }

这是我尝试过的:

db.collection.aggregate([
          {
            $group: {
            _id: {
              
              key:"$key",
              status:"$status"
            },
              v: {
               $push:  "$val"
               }
           }
         },
         {
            $group: {
            _id: "$_id.key",
              status_val: {
               $addToSet: {
                 status: "$_id.status",
                 val: "$_id.v"
               }
           }
         }},
         {
    $project: { _id: 0,key:"$_id",status_val:1 }
  }
]).pretty()

但是我得到了错误的输出:

[
  {
    "key": "B",
    "status_val": [
      {
        "status": "Done"
      }
    ]
  },
  {
    "key": "A",
    "status_val": [
      {
        "status": "Done"
      },
      {
        "status": "To Do"
      }
    ]
  }
]

如何获取嵌套数组$group

米克尔

您正确地运行了$group两次,但此行需要更改:

val: "$_id.v"

v不是的一部分_id,首先使用的数据$group如下所示:

{
    "_id": { "key": "B, "status": "Done" },
    "v": [ 5, 6 ]
}

尝试:

db.collection.aggregate([
    {
        $group: {
            _id: { key: "$key", status: "$status" },
            val: { $push: "$val" }
        }
    },
    {
        $group: {
            _id: "$_id.key",
            status_val: {
                $push: {
                    status: "$_id.status",
                    val: "$val"
                }
            }
        }
    },
    {
        $project: {
            _id: 0,
            key: "$_id",
            status_val: 1
        }
    }
])

蒙哥运动场

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在MongoDB中更新嵌套数组中的数据

来自分类Dev

如何在PHP中动态创建嵌套数组

来自分类Dev

如何在mongodb中查询对象的嵌套数组?

来自分类Dev

如何在mongoDB或Mongoose中更新嵌套数组的值

来自分类Dev

MongoDB:如何在嵌套数组中设置字段值

来自分类Dev

如何创建嵌套数组JSON?

来自分类Dev

在Javascript中创建嵌套数组

来自分类Dev

如何交换嵌套数组内的变量?

来自分类Dev

$group 在 mongodb 中带有嵌套数组

来自分类Dev

更新Mongodb中嵌套数组内的对象

来自分类Dev

MongoDb中嵌套数组内的条件检查

来自分类Dev

在 javascript 中,如何从 json 数据创建嵌套数组或对象?

来自分类Dev

如何在React Native中获取数组对象内的嵌套数组对象

来自分类Dev

在带有mongodb的meteorjs中,如何在嵌套数组中设置var

来自分类Dev

如何在MongoDB中的嵌套数组中获取子文档?

来自分类Dev

如何在Mongodb中的嵌套数组中添加/推送数据

来自分类Dev

在带有mongodb的meteorjs中,如何在嵌套数组中设置var

来自分类Dev

MongoDB如何在嵌套数组中进行过滤

来自分类Dev

MongoDB如何在文档的嵌套数组上搜索

来自分类Dev

如何在jqgrid中为json嵌套数组创建子行

来自分类Dev

如何在PHP中从嵌套数组创建逗号分隔的列表

来自分类Dev

MongoDB:如何在深层嵌套数组中附加到字符串

来自分类Dev

如何在MongoDB驱动程序中为NodeJS使用嵌套数组?

来自分类Dev

如何在MongoDB Java中检索/查找嵌套数组的所有元素

来自分类Dev

更新数组mongodb中的嵌套数组

来自分类Dev

如何从嵌套数组(PHP)创建哈希表

来自分类Dev

如何从struct元素的嵌套数组创建Spark DataFrame?

来自分类Dev

Javascript-如何创建过滤的嵌套数组

来自分类Dev

JavaScript:如何从字符串创建嵌套数组

Related 相关文章

  1. 1

    如何在MongoDB中更新嵌套数组中的数据

  2. 2

    如何在PHP中动态创建嵌套数组

  3. 3

    如何在mongodb中查询对象的嵌套数组?

  4. 4

    如何在mongoDB或Mongoose中更新嵌套数组的值

  5. 5

    MongoDB:如何在嵌套数组中设置字段值

  6. 6

    如何创建嵌套数组JSON?

  7. 7

    在Javascript中创建嵌套数组

  8. 8

    如何交换嵌套数组内的变量?

  9. 9

    $group 在 mongodb 中带有嵌套数组

  10. 10

    更新Mongodb中嵌套数组内的对象

  11. 11

    MongoDb中嵌套数组内的条件检查

  12. 12

    在 javascript 中,如何从 json 数据创建嵌套数组或对象?

  13. 13

    如何在React Native中获取数组对象内的嵌套数组对象

  14. 14

    在带有mongodb的meteorjs中,如何在嵌套数组中设置var

  15. 15

    如何在MongoDB中的嵌套数组中获取子文档?

  16. 16

    如何在Mongodb中的嵌套数组中添加/推送数据

  17. 17

    在带有mongodb的meteorjs中,如何在嵌套数组中设置var

  18. 18

    MongoDB如何在嵌套数组中进行过滤

  19. 19

    MongoDB如何在文档的嵌套数组上搜索

  20. 20

    如何在jqgrid中为json嵌套数组创建子行

  21. 21

    如何在PHP中从嵌套数组创建逗号分隔的列表

  22. 22

    MongoDB:如何在深层嵌套数组中附加到字符串

  23. 23

    如何在MongoDB驱动程序中为NodeJS使用嵌套数组?

  24. 24

    如何在MongoDB Java中检索/查找嵌套数组的所有元素

  25. 25

    更新数组mongodb中的嵌套数组

  26. 26

    如何从嵌套数组(PHP)创建哈希表

  27. 27

    如何从struct元素的嵌套数组创建Spark DataFrame?

  28. 28

    Javascript-如何创建过滤的嵌套数组

  29. 29

    JavaScript:如何从字符串创建嵌套数组

热门标签

归档