You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB嵌套数组清理缺失字段子对象问题求助

MongoDB嵌套数组清理问题:保留非目标键值对同时移除损坏子对象

需要清理MongoDB文档中的损坏子对象,现有解决方案适用于多数场景,但存在特殊情况:当_a._p层级除s外还有其他键值对(如示例中的h)时,这些非目标键值对会被误清理。

需求说明

移除_a._p.s.[a|c|d].t中缺少did、dst、den字段的对象,同时保留其他层级的非目标键值对。

示例文档

{
  "_id": ObjectId("5c05984246a0201286d4b57a"),
  "f": "x",
  "_a": [
    {
      "_onlineStore": {}
    },
    {
      "_p": {
        "s": {
          "a": {
            "t": [
              {
                "id": 1,
                "dateP": "20200-09-20",
                "did": "x",
                "dst": "y",
                "den": "z"
              },
              {
                "id": 2,
                "dateP": "20200-09-20"
              }
            ]
          },
          "c": {
            "t": [
              {
                "id": 3,
                "dateP": "20300-09-22"
              },
              {
                "id": 4,
                "dateP": "20300-09-23",
                "did": "x",
                "dst": "y",
                "den": "z"
              },
              {
                "id": 5,
                "dateP": "20300-09-23"
              }
            ]
          }
        },
        "h": "This is cleaned but it should not"
      }
    }
  ]
}

预期结果

[
  {
    "_id": ObjectId("5c05984246a0201286d4b57a"),
    "f": "x",
    "_a": [
      {
        "_onlineStore": {}
      },
      {
        "_p": {
          "s": {
            "a": {
              "t": [
                {
                  "id": 1,
                  "dateP": "20200-09-20",
                  "did": "x",
                  "dst": "y",
                  "den": "z"
                }
              ]
            },
            "c": {
              "t": [
                {
                  "id": 4,
                  "dateP": "20300-09-23",
                  "did": "x",
                  "dst": "y",
                  "den": "z"
                }
              ]
            }
          },
          "h": "This is cleaned but it should not"
        }
      }
    ]
  }
]

此前的解决方案无法覆盖该场景,请问是否有简便的MongoDB更新查询方案可以解决此问题?


内容的提问来源于stack exchange,提问作者R2D2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:16:07