使用mongocsharpdriver更新刚刚加载的字段

时间:2013-11-15 11:39:41

标签: c# .net mongodb mongodb-.net-driver

所以在我的数据库中假设我有一个类似于......的文档。

{
  _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);

我知道Save,但是这不符合我的要求,Save会用我传递的文件替换整个保存的文件,导致“children”和“age”字段被删除!

目前我认为实现这一目标的唯一方法是遍历所有字段并从中创建相应的更新文档,这有点痛苦,我希望有一个不太容易出错的方法它

1 个答案:

答案 0 :(得分:0)

在我看来,你有两个选择:

  1. 获取条目(本例中为用户),更改其属性并使用save或upsert将其保存回来。
  2. 使用更新命令并指定(安全输入)要更改的字段和方式。
  3. 我会选择第二种选择,因为我认为这是一种更“NoSQL”的方式