昨天简单介绍了官方驱动操作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     }
View Code

相关文章: