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

如何使用MongoDB查询替换字符串前N个字符并批量更新文档

在MongoDB中替换字符串前N个字符的方法

针对你需要将集合中所有文档NUMBER字段的前5个字符替换为星号的需求,可以使用MongoDB的聚合管道结合更新操作实现,具体命令如下:

// 替换yourCollectionName为你的实际集合名称
db.yourCollectionName.updateMany(
  {}, // 匹配所有文档
  [
    {
      $set: {
        NUMBER: {
          $concat: [
            { $repeat: ["*", 5] }, // 生成5个连续星号
            { $substrCP: ["$NUMBER", 5, { $strLenCP: "$NUMBER" }] } // 截取从第5位开始的剩余字符串
          ]
        }
      }
    }
  ]
)

关键参数说明

  • updateMany({}, [...]):第一个空对象表示匹配集合内所有文档,第二个参数使用聚合管道完成字段的计算与更新
  • $repeat:按指定次数重复生成目标字符(此处为生成5个*)
  • $substrCP:从指定索引位置开始截取字符串,第三个参数用$strLenCP获取原字符串长度,确保截取到末尾的所有剩余字符
  • $concat:将生成的星号字符串和截取后的剩余部分拼接,得到最终的NUMBER字段值

如果需要替换其他位数(比如前3个字符),只需把$repeat里的5和$substrCP里的起始索引5改成对应数字即可。

运行上述命令后,集合文档会更新为预期格式:

[
  {
    "NAME":"Peter Parker",
    "NUMBER":"*****59392"
  },
  {
    "NAME":"Jhon Ripper",
    "NUMBER":"*****46361"
  },
  {
    "NAME":"James",
    "NUMBER":"*****59390"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:05:32