MongoDB更新操做

更新操做

跨數據庫更新字段

getSiblingDB獲取其餘的數據庫javascript

db.getCollection('xxx').find({"field_name":{"$lt":20000000}}).forEach(function(_item){
        db.getSiblingDB("other_db").collection_name.update({"feild_name1":_item.field_name1},{$set:{"field_name2":_item.field_name2}},false,true);
})

getSiblingDB("other_db")指定要跨的數據庫
getSiblingDB("other_db").collection_name 指定表名collection_name

更新數組裏面的字段

$elemMatch 匹配數據裏的數據
$set 更新java

db.getCollection('xxx').update({
        "name":"bc2c2e9676e74600274d3e3738bab5c6a27dc85d560563b695fece08b6a7f7de",
        "array_name":{"$elemMatch":{"type":"control"}},
        },
        {"$set":{"array_name.$.amount":15000000}}
    )

更新字段名

db.集合名稱.update({}, {$rename:{"舊鍵名稱":"新鍵名稱"}}, false, true)

第一個false表示:可選,這個參數的意思是,若是不存在update的記錄,true爲插入新的記錄,默認是false,不插入。
第二個true表示:可選,mongodb 默認是false,只更新找到的第一條記錄,若是這個參數爲true,就把按條件查出來多條記錄所有更新。

更新字段類型/插入/刪除字段

int轉換成字符串類型

db.getCollection('xxx').find({"decimals":{$type:"int"}}).forEach(function(x){
        x.decimals=String(x.decimals);
        db.asset.save(x);
})

    Double 1 「double」
    String 2 「string」
    Object 3 「object」
    Array 4 「array」
    Binary data 5 「binData」
    Undefined 6 「undefined」 Deprecated.
    ObjectId 7 「objectId」
    Boolean 8 「bool」
    Date 9 「date」
    Null 10 「null」
    Regular Expression 11 「regex」
    DBPointer 12 「dbPointer」
    JavaScript 13 「javascript」
    Symbol 14 「symbol」
    JavaScript (with scope) 15 「javascriptWithScope」
    32-bit integer 16 「int」
    Timestamp 17 「timestamp」
    64-bit integer 18 「long」
    Min key -1 「minKey」
    Max key 127 「maxKey
相關文章
相關標籤/搜索