//更新操作使用collection的Update方法,有泛型和非泛型两个版本:

//其签名如下(列出了两个简单并常用的的重载,还有几个):

public virtual WriteConcernResult Update(IMongoQuery query, IMongoUpdate update);
public virtual WriteConcernResult Update(IMongoQuery query, IMongoUpdate update, UpdateFlags flags)
/// <summary>
    /// 学生实体类
    /// </summary>
    public class Student
    {
        public ObjectId Id { get; set; }
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 年龄
        /// </summary>
        public Int32 Age { get; set; }
        /// <summary>
        /// 地址
        /// </summary>
        public Address Address { get; set; }

    }
    /// <summary>
    /// 地址
    /// </summary>
    public class Address
    {
        /// <summary>
        /// 城市
        /// </summary>
        public String City { get; set; }
        /// <summary>
        /// 邮编
        /// </summary>
        public String PostCode { get; set; }
    }
//在我们关系数据库中,比如oracle或者sqlserver中按照实体类设计,表结构应该是两个,学生信息表以及地址表,但是我们假设存储在一个表中方便我们类比;我要更新数据库中信息,通常关系数据库中我们是这么做的:

update tableName set  a='a' and  b='b'  where  c='c'

//在mongodb中我们就是向下面这样做:

use dbName;

db.CollectionName.update({query:"query"},{"$set":{update:"update"}})
首先构造IMongoQuery:

//a.通过QueryBuilder<T>构造

var t1 = queryBuilder.EQ<String>(t => t.Address.City, "北京");//where city="北京"
//b.通过Query构造

 var t2 = Query.EQ("Address.City", "北京");//where city="北京"
 var t3 = Query<Student>.EQ<String>(t => t.Address.City, "北京");//where city="北京"
//其次,构造IMongoUpdate

var u1 = Update<Student>.Set<String>(t => t.Address.City, "上海");//set city="上海"
var u2 = Update.Set("Address.City", "上海");//set city="上海"
这样可以往下调用update方法了

collection.Update(t1, u2);//只更新满足t1的一个文档对象
collection.Update(t1, u2, UpdateFlags.Multi);//更新满足t1的所有文档对象

最新文章

  1. js正则表达式校验正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
  2. STC12C5A60S2 @ 22.0184Mhz 精确延时
  3. 14.spark RDD解密
  4. 第三方类AFNetworking
  5. 程序集“xxx&quot;中的类型&quot;xxx&quot;的方法“XXXX”没有实现
  6. Web缓存(Varnish方案)
  7. 4.当接口的请求方式为 application/json的时候时
  8. DataSet 转 List
  9. cyclictest 简介
  10. ACM山东工商 栈和队列算法练习
  11. C++重写new和delete,比想像中困难
  12. springboot最新版本自定义日志注解和AOP
  13. cdh-5.10.0搭建安装
  14. 升级win10,提示(RAM)内存不足2G的解决的方法,亲測可行
  15. R语言ggplot2-labs 函数
  16. Oracle数据库中的分页--rownum
  17. 自动化运维工具saltstack05 -- 之salt-ssh模式
  18. [javaSE] 多线程(守护线程)
  19. C++中函数调用时的三种参数传递方式
  20. MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求

热门文章

  1. 烂泥:centos6.4服务器添加新硬盘
  2. .NET三层架构例子超链接可以点击显示内容页面
  3. 简答哈希实现 (nyoj 138 找球号2)
  4. Android开发中 .9.png格式图形设计:
  5. 异机恢复perform restores
  6. 杂谈SharpDx中的WIC组件——我们需要WIC的图片编码功能么?
  7. 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
  8. [cocos2dx] 让UIButton支持disable状态
  9. JMeter学习(十九)JMeter测试MongoDB
  10. IT技术博客收藏