2013-11-15 119 views
1

所以在我的數據庫假設我有類似的文件...與mongocsharpdriver更新剛剛加載領域

{ 
    _id : 12334, 
    name: "MyName", 
    children: [], 
    age: 102 
} 

但是在我的模型,我只是想

public class User 
{ 
    public int Id { get; set; 
    public string Name { get; set; } 
} 

我想成爲能夠做到如下所示...

var user = _collection.FindAs<User>(Query.Eq("_id", 1234)); 
user.Name = "Changed Name"; 
_collection.Update(user); 

我知道保存,但這不會做我想要的,保存將取代整個s一個我通過它的文件,導致「孩子」和「年齡」字段被刪除!

目前我在想唯一的方法是遍歷所有字段並從中創建適當的更新文檔,這有點痛苦,我希望有一個較少的錯誤發生的方式來做到這一點。

回答

0

在我看來,你有兩個選擇:

  1. 獲取(在這種情況下用戶)的進入,改變它的屬性,並將其保存回用保存或更新插入。
  2. 使用更新命令並指定(安全鍵入)要更改的字段以及如何更改。

我會選擇第二個選項去,因爲我認爲這是一個更「的NoSQL」的方式