将嵌套数组的嵌套数组的所有元素重新组合为单个数组

甘草

我有这个系列:

{
  "_id": ObjectId("6045eec8f113547ddd3472d9"),
  "execution": {
    "_id": ObjectId("6045eec8f113547ddd3472d8"),
    "steps": [
      {
        "_id": ObjectId("6045eec8f113547ddd3472d7"),
        "actions": [
          {
            "_id": ObjectId("6045eec8f113547ddd3472d6"),
            "title": "action title"
          }
        ]
      }
    ]
  }
}

我想达到这个结果:

{
  "_id": ObjectId("6045eec8f113547ddd3472d9"),
  "allActions": [
    {
      "_id": ObjectId("6045eec8f113547ddd3472d6"),
      "title": "action title"
    }
  ]
}

为了澄清更多,我想添加一个数组,将“步骤”数组下的所有“动作”组合在一起

db.getCollection("missions").aggregate([
    {
        $match: {
            _id: ObjectId("6045eec8f113547ddd3472d9")
        }
    },
    {
        $addFields: {
            "allActions": "$execution.steps"
        }
    }
])

有人可以帮我完成代码的一部分,让我实现所需的输出吗?

射线

您可以只使用$reduce$concatArraysactions数组中的所有条目进行分组

db.missions.aggregate([
  {
    $match: {
      _id: ObjectId("6045eec8f113547ddd3472d9")
    }
  },
  {
    $addFields: {
      "allActions": {
        "$reduce": {
          "input": "$execution.steps.actions",
          "initialValue": [],
          "in": {
            "$concatArrays": [
              "$$value",
              "$$this"
            ]
          }
        }
      }
    }
  }
])

这是Mongo 游乐场供您参考。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章