mysql和mongodb替換欄位中某字元

z597011036發表於2020-05-15

1.替換mysql欄位中關鍵字元(將 zjy.zyzhjyy.cn域名替換成 zjy.zyjyxx.com)。

      注意:操作前請先做好資料備份。

update cloud_push_log set result_path = replace(result_path, 'zjy.zyzhjyy.cn','zjy.zyjyxx.com');

cloud_push_log:指定表名

result_path:欄位名


2.替換mongodb欄位中某字串(將 zjy.zyjyxx.com字元替換成 zjy.zyzhjyy.cn) 。

      注意:操作前請先做好資料備份。

db.getCollection('eventArgs').find({'contextFileHost':{'$ne':null}, 'contextFileHost':/\.zjy\.zyjyxx\.com/}).
forEach( 
    function(item) {
        var tmp = String(item.contextFileHost)
        if (tmp == null){
            print(item.contextFileHost) 
        }
        else{
            tmp = tmp.replace(/\.zjy\.zyjyxx\.com/g,"\.zjy\.zyzhjyy\.cn");
            }
            item.contextFileHost = tmp ;
            db.getCollection('eventArgs').save(item);
            print("update to " + item.contextFileHost) 
    } 
);

eventArgs:指定表

contextFileHost:欄位名


(2). 巢狀修改字元(將zjy.zyjyxx.com域名替換成zjy.zyzhjyy.cn)

db.getCollection('eventArgs').find({'files.origin':{'$ne':null}, 'files.origin':/\.zjy\.zyjyxx\.com/}).
forEach( 
    function(item) {
        var tmp = String(item.files.origin)
        if (tmp == null){
            print(item.files.origin) 
        }
        else{
            tmp = tmp.replace(/\.zjy\.zyjyxx\.com/g,"\.zjy\.zyzhjyy\.cn");
            }
            item.files.origin= tmp ;
            db.getCollection('eventArgs').save(item);
            print("update to " + item.files.origin) 
    } 
);


eventArgs:表名

files.origin:files是一級欄位名,origin是二級欄位名。


(3),欄位中帶有陣列批次更新資料 (將zjy.zyjyxx.com域名替換成zjy.zyzhjyy.cn )

      注意:操作前請先做好資料備份。

db.getCollection('convert_state_copy0515-1').find({'executeArgs.source':new RegExp(".*zjy.zyjyxx.com.*")}).forEach(
function(item){
        var executeArgs = item['executeArgs'];
        for(var i in executeArgs){
                var source = executeArgs[i]['source'];
                if(null != source && String(source).search('zjy.zyjyxx.com') > -1) {
                    executeArgs[i]['source'] = source.replace('zjy.zyjyxx.com', 'zjy.zyzhjyy.cn');
                }  
                var callback = executeArgs[i]['callback'];
                if(null != callback){
                    var callback_url = executeArgs[i]['callback']['url'];
                    if(null != callback_url && String(callback_url).search('zjy.zyjyxx.com') > -1) {
                        executeArgs[i]['callback']['url'] = callback_url.replace('zjy.zyjyxx.com', 'zjy.zyzhjyy.cn');
                    } 
                }
                var upload = executeArgs[i]['upload'];
                if(null != upload){
                    var upload_url = executeArgs[i]['upload']['url'];
                    if(null != upload_url && String(upload_url).search('zjy.zyjyxx.com') > -1) {
                        executeArgs[i]['upload']['url'] = upload_url.replace('zjy.zyjyxx.com', 'zjy.zyzhjyy.cn');
                    }         
                }
        }
    db.getCollection('convert_state_copy0515-1').update({"_id":item['_id']},{$set:{"executeArgs":executeArgs,"exec":1}});
})

convert_state_copy0515-1:表名

executeArgs.source:欄位名

source,callback,upload:欄位名


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25854343/viewspace-2692488/,如需轉載,請註明出處,否則將追究法律責任。

相關文章