mongodb命令行中批量替换字段中某段文本的方法,replace substring。

q
qimoe
发布于 8 天前

在mongo的命令行中可以做到很多事,比如批量替换字段中某段文本,比如mongo的文档中有字段poster,想要批量替换poster中某段字符,那么我们的办法有多少种?

例子:

比如我们的字段poster的数据为:"./public/poster/1.jpg“,我们想批量全部替换成不包含"./public”的数据,例如前面的例子中的批量替换后就变成了:"/poster/1.jpg“。

方法一:

db.tvs.find().forEach(function(e,i) {
    e.poster=e.poster.replace("./public","");
    db.tvs.save(e);
});

方法二:

在mongodb版本4.4以上可用,参考官方文档:$replaceOne 

// { poster: "./public/..." } 之前
// { poster: "/..." } 之后
db.tvs.updateMany(
  { poster: { $regex: /public/ } },
  [{
    $set: { poster: {
      $replaceOne: { input: "$poster", find: "./public", replacement: "" }
    }}
  }]
)

相关文章推荐
评论区
暂未开放
相关文章推荐