Mongodb中批量替換(replace)


  原因:整個項目遷移之后,之前上傳的文件路徑url在數據庫中都是以ip為前綴的,例如(http://111.111.111.111:8089/u/0/0/202112/o/8a623b0fa09b4ccf8f1e0ee57ee43f3c.jpg),現在都不能訪問了,所以要進行替換成域名。吃一塹長一智啊兄弟們,前綴一定要用域名,遷移后直接重新解析域名就行了!!!

廢話不多說,直接看sql:

 db.flow_data.find(
    {
        'formDatas':{"$elemMatch": {"value": /^.*11.192.81.91.*$/}}
    }
).forEach(
    function (item) {
        let runFlag = 0
        let arr = item.formDatas;
        for(const index in arr){
            let flag = arr[index].value.indexOf('11.192.81.91');
            if(flag != -1){
             let str1 = arr[index].value
                let a = str1.replace(/11.192.81.91/g,'crm.aaaaaa.cn')//
                arr[index].value = a
                runFlag = 1
            }
        }
        print(JSON.stringify(arr))
        if(runFlag){
            let flowNo = item.flowNo
            print(flowNo)
            item.formDatas = arr
            db.getCollection("flow_data").update( { 'flowNo':flowNo }, { $set: { 'formDatas':arr } } )
        }
        print("-------------------------------------------------")
    }
 )

 

下面是庫中數據格式:

{
    "_id": ObjectId("61cef66857ee926adab7c27c"),
    "flowNo": "1000331640953448",
    "isContract": NumberInt("0"),
    "flowTmpId": ObjectId("618904b87b2d3446d0812c6a"),
    "initUserId": NumberInt("100033"),
    "initTime": NumberLong("1640953448"),"flowTmpName": "費用報銷",
    "flowTitle": "xxx的費用報銷申請",
    "formDatas": [
        {
            "vModel": "field10",
            "value": "[{\"key\":\"1000331639107965\",\"value\":\"xxx的備用金申請\"}]",
            "dataType": "relevance",
            "label": "關聯備用金審批單"
        },
        {
            "vModel": "field11",
            "value": "超出金額,不用報銷",
            "dataType": "textarea",
            "label": "備注"
        },
        {
            "vModel": "field12",
            "value": "http://11.192.81.91:8089/u/0/0/202112/o/8a623b0fa09b4ccf8f1e0ee57ee43f3c.jpg,http://11.192.81.91:8089/u/0/0/202112/o/582472c5b2ed42d6b1886bfc055d8352.jpg,http://11.192.81.91:8089/u/0/0/202112/o/7e57d8cc57e84438974225f573ed21be.jpg",
            "dataType": "upload-img",
            "label": "圖片"
        },
        {
            "vModel": "field13",
            "value": "[{\"fileName\":\"12月活動報銷.pdf\",\"filePath\":\"http://11.192.81.91:8089/u/0/0/202112/aceddd8413884b57bb54dccdeba5dc72.pdf\",\"fileId\":\"c9cdc39cf4dd4b9081b71792c532e777\",\"fileExt\":\".pdf\"},{\"fileName\":\"部門聚餐.pdf\",\"filePath\":\"http://11.192.81.91:8089/u/0/0/202112/3845199de6144846b45e368ab972d6ca.pdf\",\"fileId\":\"a324cff69dc64fef8fddbe9ccaf0a197\",\"fileExt\":\".pdf\"},{\"fileName\":\"零食.pdf\",\"filePath\":\"http://11.192.81.91:8089/u/0/0/202112/e2a6efa5651f4ccd94242df67326f14f.pdf\",\"fileId\":\"784d6108777146f08a59b49752497608\",\"fileExt\":\".pdf\"},{\"fileName\":\"12月活動經費.xls\",\"filePath\":\"http://11.192.81.91:8089/u/0/0/202112/dc67f27c27e64ddda22d37522b3e8768.xls\",\"fileId\":\"ddad34fe6fef461ca232fe73fabb82a4\",\"fileExt\":\".xls\"}]",
            "dataType": "upload-text",
            "label": "附件"
        }
    ],
    "nodes": [
        {
            "nodeName": "審批人",
            "nodeType": NumberInt("1"),
            "result": NumberInt("1"),
            "counterSign": NumberInt("1"),
            "appMembers": [
                {
                    "userId": NumberInt("100150"),
                    "userName": "高竹君",
                    "isAffirm": NumberInt("1"),
                    "reason": "",
                    "nodeOrd": NumberInt("1"),
                    "appOrd": NumberInt("1"),
                    "affirmTime": NumberLong("1640953550"),
                    "duration": 0.03
                }
            ],
            "nodeOrd": NumberInt("1"),
            "current": NumberInt("0")
        },
        {
            "nodeName": "審批人",
            "nodeType": NumberInt("1"),
            "result": NumberInt("1"),
            "counterSign": NumberInt("1"),
            "appMembers": [
                {
                    "userId": NumberInt("100025"),
                    "userName": "李文心",
                    "isAffirm": NumberInt("1"),
                    "reason": "",
                    "nodeOrd": NumberInt("2"),
                    "appOrd": NumberInt("1"),
                    "affirmTime": NumberLong("1640954949"),
                    "duration": 0.39
                }
            ],
            "nodeOrd": NumberInt("2"),
            "current": NumberInt("0")
        },
        {
            "nodeName": "審批人",
            "nodeType": NumberInt("1"),
            "result": NumberInt("1"),
            "counterSign": NumberInt("0"),
            "appMembers": [
                {
                    "userId": NumberInt("100058"),
                    "userName": "張榮華",
                    "isAffirm": NumberInt("0"),
                    "nodeOrd": NumberInt("3"),
                    "appOrd": NumberInt("0"),
                    "affirmTime": NumberLong("0")
                },
                {
                    "userId": NumberInt("100178"),
                    "userName": "梁海霞",
                    "isAffirm": NumberInt("1"),
                    "reason": "",
                    "nodeOrd": NumberInt("3"),
                    "appOrd": NumberInt("1"),
                    "affirmTime": NumberLong("1640955017"),
                    "duration": 0.02
                }
            ],
            "nodeOrd": NumberInt("3"),
            "current": NumberInt("0")
        },
        {
            "nodeName": "審批人",
            "nodeType": NumberInt("1"),
            "result": NumberInt("0"),
            "counterSign": NumberInt("1"),
            "appMembers": [
                {
                    "userId": NumberInt("100178"),
                    "userName": "梁海霞",
                    "isAffirm": NumberInt("0"),
                    "nodeOrd": NumberInt("4"),
                    "appOrd": NumberInt("0"),
                    "affirmTime": NumberLong("0")
                },
                {
                    "userId": NumberInt("100217"),
                    "userName": "林鎣鎣",
                    "isAffirm": NumberInt("0"),
                    "nodeOrd": NumberInt("4"),
                    "appOrd": NumberInt("0"),
                    "affirmTime": NumberLong("0")
                }
            ],
            "nodeOrd": NumberInt("4"),
            "current": NumberInt("0")
        },
        {
            "nodeName": "抄送人",
            "nodeType": NumberInt("2"),
            "result": NumberInt("0"),
            "counterSign": NumberInt("1"),
            "appMembers": [
                {
                    "userId": NumberInt("100025"),
                    "userName": "李文心",
                    "isAffirm": NumberInt("0"),
                    "nodeOrd": NumberInt("5"),
                    "appOrd": NumberInt("0"),
                    "affirmTime": NumberLong("0")
                },
                {
                    "userId": NumberInt("100058"),
                    "userName": "張榮華",
                    "isAffirm": NumberInt("0"),
                    "nodeOrd": NumberInt("5"),
                    "appOrd": NumberInt("0"),
                    "affirmTime": NumberLong("0")
                }
            ],
            "nodeOrd": NumberInt("5")
        }
    ],
    "step": NumberInt("4"),
    "createTime": NumberLong("1640953448"),
    "createUserId": NumberInt("100033"),
    "endResult": NumberInt("2"),
    "companyId": ObjectId("6165173076586f41d30a6267"),
    "deptId": ObjectId("6188bd4e7b2d3446d081251d"),
    "appTime": NumberLong("1640955017"),
    "isDelete": NumberInt("0"),
    "device": "pc",
    "revocTime": NumberLong("1640958127")
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM