MongoDB 字段部分内容替换 SQL整理

前言

最近接到一个需求,是需要将一些数据的图片,视频等带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}});  
});

嵌套数组的话就多次遍历循环替换就好了。

觉得有用的过来看看指导指导,有更好方式的也可以留言,我可以更新进来,一起学习!

相关推荐
沉淅尘几秒前
Context Engineering: 优化大语言模型性能的关键策略与艺术
数据库·人工智能·语言模型
重生之绝世牛码7 分钟前
Linux软件安装 —— Elasticsearch集群安装(带密码验证)
大数据·linux·运维·数据库·elasticsearch·软件安装
敲敲千反田14 分钟前
redis哨兵和缓存
数据库·redis·缓存
独泪了无痕18 分钟前
SQL数据类型转换:CAST详解及实践
数据库·sql·oracle
知识分享小能手18 分钟前
Oracle 19c入门学习教程,从入门到精通,Oracle 用户管理与权限分配 —— 语法详解与实战案例(13)
数据库·学习·oracle
DarkAthena19 分钟前
【GaussDB】GaussDB506版本A模式中的date类型
数据库·gaussdb
想做后端的前端19 分钟前
Redis中的Lua使用
数据库·redis·lua
小锋学长生活大爆炸20 分钟前
【工具】免费的文本读写API
java·数据库·mysql
晓风残月淡23 分钟前
mysql数据库完整备份恢复方案(二)
数据库·mysql·adb
l1t25 分钟前
DeepSeek总结的Turso的CTE支持情况
数据库·sqlite·turso