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: "" }
}}
}]
)
相关文章推荐
评论区
暂未开放
相关文章推荐