2021-12-24 mongo scripts

update nested fields, key is a variable
通過(guò)腳本, 更新的值和key都是動(dòng)態(tài)變量傳入的, 并且更新的嵌套的值

db.getCollection('collection').find({"filter": "fileter"}).forEach(function (data) {
        var actions = data.actions
        var update_ob = {}
        var keys = ['key']
        actions.forEach(function (action) {
            if (action.action == 'update') {
                var fields = action.fields
                for (var key in action.fields) {
                    if(key in data.eventFields){
                        continue
                    }
                    if (keys.indexOf(key) > -1) {
                        update_ob['map.' + key] = fields[key].new_value
                    }
                }
            }
        })
        if (Object.keys(update_ob).length !== 0) {
            db.getCollection('collection').updateOne({ "id":data.id }, { $set: update_ob })
        }
    })

另外, 推薦一個(gè)軟件
https://www.nosqlbooster.com/
可以用來(lái)debugger, 非常好用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容