mongo 替換某個字段中的某個特定字符

數據庫 member 表字段格式舉例:

{
    "_id" : ObjectId("xxxxxx"),
    ...
    "socials" : [ 
        {
            "channel" : "wechat-channelId1",
            "openId" : "wechat是是openId1",
        }, 
        {
            "channel" : "wechat-channelId2",
            "openId" : "wechat-openId2",
        }, 
        {
            "channel" : "weapp-channelId3",
            "openId" : "weapp-openId3",
        }, 
        {
            "channel" : "weibo-channelId4",
            "openId" : "weibo-openId4",
        }, 
    ],
    ...
}

socials.openId 字段中可能有髒數據,要把“是”替換爲“1”

腳本

var count = 0;
db.member.find({
    "socials.openId": /^.*是.*$/,
}).snapshot().forEach(function(member) {
    var newSocials = []
    member.socials.forEach(function(social) {
        var oldOpenId = social.openId;
        var tmp = social.openId;
        if (tmp != null){
            tmp = tmp.replace(/是/g,"1");
            if (tmp != oldOpenId) {
                print('memberId: ' + member._id + ', oldOpenId: ' + oldOpenId + ', newOpenId: ' + tmp);
            }
        }
        social.openId = tmp;
        newSocials.push(social);
    })
    member.socials = newSocials;
    db.member.save(member);
    count++;
});
print('update done with count: ' + count);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章