MongoDB 字段部分内容替换 SQL整理
2023-12-26 17:43:06
前言
最近接到一个需求,是需要将一些数据的图片,视频等带http链接的内容替换成https.
以下是我整理的一些SQL, 在此记录,仅供参考
单字段替换
db.getCollection('db').find({"cloumn":{$exists:true, $regex:'http:'}}).forEach(function(item){
var str = item.cloumn;
var newStr = str.replace('http:', "https:");
db.getCollection("db").update({_id:item._id},{$set:{cloumn: newStr }});
});
数组字段
第一种只判断字段是否存在
db.getCollection('db').find({"cloumn":{$exists:true}}).forEach(function(item){
var list = item.cloumn;
for(var i in list) {
var str = list[i];
var newStr = str.replace('http:', "https:");
list[i] = newStr;
}
db.getCollection("db").update({_id:item._id},{$set:{cloumn: list}});
});
第二种数组写法,更严谨,判断了字段是不是数组
db.getCollection('db').find({"cloumn":{$exists:true}, $where:"Array.isArray(this.cloumn)"}).forEach(function(item){
var list = item.cloumn;
for(var i in list) {
var str = list[i];
// 此处判断是否为null
if(str != null){
var newStr = str.replace('http:', "https:");
list[i] = newStr;
}
}
db.getCollection('db').update({_id:item._id},{$set:{cloumn: list}});
});
嵌套数组的话就多次遍历循环替换就好了。
觉得有用的过来看看指导指导,有更好方式的也可以留言,我可以更新进来,一起学习!
文章来源:https://blog.csdn.net/zzprongyi/article/details/135223349
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!