2013-01-14 116 views
0

如何更新图片的更新列表?如何更新mongodb阵列

型号:

public class Test 
    { 
     [BsonId] 
     public string Id { get; set; } 
     public string Name { get; set; } 
     public List<Picture> Pic {get; set; } 
     public DateTime LastModified { get; set; } 
    } 

    public class Picture 
    { 
     public string Name{ get; set;} 
     public int Size {get; set;} 
    } 

更新代码:

IMongoUpdate update = Update 
       .Set("Name", test.Name) 
       .Set("Address", test.Address) 
       .Set("LastModified", test.LastModified); 

结果:

{ 
    "_id": "50d3dbce1292dd2e98af1dd1", 
    "Name": "Bubba", 
    "Address": "1111", 
    "Pic" : [{"Name": "test1.jpg", "Size":"1000"}, {"Name": "test2.jpg", "Size":"2000"}], 
    "LastModified": { 
     "$date": "2012-12-21T03:47:26.535Z" 
    } 
} 
+1

也许手册可能会有所帮助。 http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Updatemethod –

回答

0

如果要更新整个集合,你可以使用此代码

var update = Update<Test>.Set(x => x.Pic, new List<Picture> {new Picture {Name="name", Size=10}}); 
collection.Update(Query<Test>.EQ(x => x.Id, "1"), update); 

有方法来修改收集更新类:AddToSet,推,拉,流行...

如果您需要更新的文档的所有字段,然后它更容易更新整个文档

collection.Update(document) 

在这种情况下,必须设置BsonId字段。