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

如何编写MongoDB脚本实现指定条件下数组元素的子串替换

MongoDB数组元素子串批量替换脚本

需求说明

现有文档结构如下:

{
  "field": "value",
  "facilityId": "H001",
  "alternativeId": ["defaultID#12312-213-1314"]
}

需要完成以下操作:

  • 筛选所有facilityId字段值为H001的文档
  • 将匹配文档中alternativeId数组每个元素里的defaultID子串,全部替换为NEWID

适用版本

MongoDB 4.2及以上版本(支持更新管道语法)

执行脚本

// 请将下方的collection替换为你实际的集合名
db.collection.updateMany(
  // 筛选条件
  { "facilityId": "H001" },
  // 更新管道逻辑
  [
    {
      $set: {
        alternativeId: {
          $map: {
            input: "$alternativeId",
            as: "item",
            in: {
              $replaceAll: {
                input: "$$item",
                find: "defaultID",
                replacement: "NEWID"
              }
            }
          }
        }
      }
    }
  ]
)

注意事项

  • 如果只需替换每个元素中第一个出现的defaultID,可以把$replaceAll替换为$replaceOne
  • 如果你实际数据里的子串是示例中拼写的deafaultID(拼写多了a),请调整find参数的取值为实际的子串内容
  • 执行前建议先运行db.collection.find({ "facilityId": "H001" })确认匹配的文档范围,避免误操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 02:54:08