如何在mongodb中已经存在的嵌套文档中插入字段?

时间:2018-09-18 13:13:10

标签: mongodb mongodb-query

我具有以下文档结构。

{ 
    "_id" : ObjectId("585a985f67962d91c0f3a1f6"), 
    "Email" : "abc@gmail.com", 
    "PhoneNumber" : "9999999999", 
    "TwoFactorEnabled" : false, 
    "LockoutEndDateUtc" : null, 
    "LockoutEnabled" : true, 
    "AccessFailedCount" : NumberInt(0), 

    "DisplayName" : "Nilesh Guria", 
    "CreatedOn" : ISODate("2016-12-21T14:57:35.379+0000"), 
    "UpdatedOn" : ISODate("2018-09-17T21:32:16.027+0000"),  
    "Wallet" : {
        "Balance" : 1000,
        "UnbilledUsage": 100
    }
}

我想在所有此类文档的“钱包”字段中添加一个默认值为0的字段“ CustomerCredit”。如何实现呢?

3 个答案:

答案 0 :(得分:2)

db.collection("collectionName")
  .updateMany({ "Wallet.CustomerCredit": { $exists: false }},
          { $set:{ "Wallet.CustomerCredit": 0 }});

答案 1 :(得分:1)

尝试这样的事情:

db.collection.aggregate([
    {
        $addFields{
             "Wallet.CustomerCredit": 0
        }
    }
])

请参见docs

答案 2 :(得分:1)

来自python shell。

db.collection.update_many({"$set": {"Wallet.CustomerCredit": 0}})

由于不建议使用更新,因此可以使用update_many。 来自mongoshell

db.collection.updateMany({},{$set: {"Wallet.CustomerCredit": 0}})