昨天简单介绍了官方驱动操作MongoDB进行增删查操作的,今天继续介绍更新操作.....
官方驱动中更新操作使用collection的Update方法,有泛型和非泛型两个版本:
其签名如下(列出了两个简单并常用的的重载,还有几个):
public virtual WriteConcernResult Update(IMongoQuery query, IMongoUpdate update); public virtual WriteConcernResult Update(IMongoQuery query, IMongoUpdate update, UpdateFlags flags)
首先分析一下方法参数:
IMongoQuery 和 IMongoUpdate只是两个约束接口,实现了该接口的类均可作为该方法参数,对于前者,在这里我们主要通过Query类的静态方法和 QueryBuilder<T>这个泛型类的实例方法来构造
IMongoQuery ;对于IMongoUpdate我们主要通过Update类以及其泛型版本的静态方法来构造,其静态方法返回值类型为UpdateBuilder,该类恰好实现了IMongoUpdate接口。
分析类比调用
基础实体类:
1 /// <summary> 2 /// 学生实体类 3 /// </summary> 4 public class Student 5 { 6 public ObjectId Id { get; set; } 7 /// <summary> 8 /// 姓名 9 /// </summary> 10 public string Name { get; set; } 11 /// <summary> 12 /// 年龄 13 /// </summary> 14 public Int32 Age { get; set; } 15 /// <summary> 16 /// 地址 17 /// </summary> 18 public Address Address { get; set; } 19 20 } 21 /// <summary> 22 /// 地址 23 /// </summary> 24 public class Address 25 { 26 /// <summary> 27 /// 城市 28 /// </summary> 29 public String City { get; set; } 30 /// <summary> 31 /// 邮编 32 /// </summary> 33 public String PostCode { get; set; } 34 }