mongodb现场级更新

时间:2016-03-29 09:13:11

标签: mongodb mongodb-query

label : {
   field1 : { .....},
   field2 : {.....}
}
db.collection.update({_id:"objectId"},{$set : label})

我有一个包含多个文件的单个集合,我想更新field1而不删除field2,这可能吗?

例如

{ 
    "_id" : ObjectId("56fa03....."), 
    "categories" : { 
        "category_name" : { 
            "en" : "Category Name", 
            "dk" : "Category Name DK" 
        }, 
        "color" : { "en" : "Color", "dk" : "Color DK" } 
    } 
} 

我希望在不删除颜色的情况下更新category_name。如何更新记录中的单个field1?

1 个答案:

答案 0 :(得分:0)

db.getCollection('CollectionName')
    .update("_id" : "objectId", 
        {$set : {"label.field1" : "value of field 1"}})

基于文档(v 3.2):

  

update()方法修改现有的特定字段   完整地记录或替换现有文件。

     

要更新嵌入的文档或数组,请指定   该字段的替换值。更新中的特定字段   嵌入文档或在数组中,使用点表示法来指定   字段