回到目录

说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在项目中,还是实现了这种批量的操作,并且已经通过测试,下面公开一下源代码

        public void Insert(IEnumerable<TEntity> item){var list = new List<WriteModel<TEntity>>();foreach (var iitem in item){list.Add(new InsertOneModel<TEntity>(iitem));}_table.BulkWriteAsync(list).Wait();}public void Update(IEnumerable<TEntity> item){var list = new List<WriteModel<TEntity>>();foreach (var iitem in item){QueryDocument queryDocument = new QueryDocument("_id", new ObjectId(typeof(TEntity).GetProperty(EntityKey).GetValue(iitem).ToString()));list.Add(new UpdateOneModel<TEntity>(queryDocument, Builders<TEntity>.Update.Combine(GeneratorMongoUpdate(iitem))));}_table.BulkWriteAsync(list).Wait();}public void Delete(IEnumerable<TEntity> item){var list = new List<WriteModel<TEntity>>();foreach (var iitem in item){QueryDocument queryDocument = new QueryDocument("_id", new ObjectId(typeof(TEntity).GetProperty(EntityKey).GetValue(iitem).ToString()));list.Add(new DeleteOneModel<TEntity>(queryDocument));}_table.BulkWriteAsync(list).Wait();}

在程序实现之中,我们使用了WriteModel泛型对象,这将存储要插入,更新和删除的对象,对于插入来说,只有一个参数就是它的实体集合,而对象更新来说,它不仅有实体集合而且还有对应的条件QueryDocument,而对于删除操作来说,只提供QueryDocument即可!

回到目录

转载于:https://www.cnblogs.com/lori/p/4564706.html

MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除相关推荐

  1. MongoDB学习笔记~为IMongoRepository接口添加分页取集合的方法

    回到目录 对于数据分页,我们已经见的太多了,几乎每个列表页面都要用到分页,这已经成了一种定理了,在进行大数据展示时,如果不去分页,而直接把数据加载到内存,这简直是不可以去相向的,呵呵,在很多ORM工具 ...

  2. [权威指南]学习笔记——第3章 创建、更新和删除文档

    插入并保存文档 db.foo.insert({文档}); 插入insert最大的文档为16mb,如果查询一个稳定大小,可以用Object.bsonsize(文档名),单位为字节 批量增加,mongoi ...

  3. PHP操作MongoDB学习笔记

    PHP操作MongoDB技術總結 <?php /** * PHP操作MongoDB学习笔记 */ //************************* //**   连接MongoDB数据库  ...

  4. 非关系型数据库MongoDB学习笔记

    MongoDB学习笔记   --周灿 创建数据库 use "databasename" 查看数据库 show dbs 给指定数据库添加集合和插入记录 db.集合名.insert({ ...

  5. MongoDB学习笔记(一) MongoDB介绍及安装

    系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     MongoDB学习笔记(二) 通过samus驱动实现基本数据操作     MongoDB学习笔记(三) 在MVC模式下通过Jq ...

  6. MongoDB学习笔记~对集合属性的操作

    $unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$pop操作 ...

  7. MongoDB学习笔记一:MongoDB的下载和安装

    MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...

  8. MongoDB 学习笔记八 复制、分片、备份与恢复、监控

    MongoDB 学习笔记八 复制.分片.备份与恢复.监控 MongoDB复制(副本集) 什么是复制? MongoDB 复制原理 MongoDB 副本集设置 副本集添加成员 MongoDB 分片 分片 ...

  9. WordPress批量添加、修改、删除自定义字段的sql命令

    写一下WordPress批量添加.修改.删除自定义字段的sql命令,今天有个小伙伴问我一个问题,原本他用的是另外一个主题,看见日主题比较美观,于是他换到了日主题,用日主题的时候遇到了个问题,凡是资源站 ...

  10. MongoDB学习笔记(3)- Mongo Shell 常用查询命令

    MongoDB学习笔记(3)- Mongo Shell 常用查询命令 本文所使用的MongoDB版本为 4.0.10 > db.version(); 4.0.10 一.find 命令进行简查询 ...

最新文章

  1. 步步为营-68-asp.net简单练习(get set)
  2. python适合零基础学习吗-Python适合不适合零基础学习呢?老男孩教育
  3. git bash退回上一个文件夹
  4. 小鱼儿 c语言,小鱼儿请进.
  5. spring boot controller构造方法_面试前突击Spring,我只需要十分钟,那么你呢?
  6. java并发核心知识体系精讲_JVM核心知识体系
  7. Springboot瘦身(lib和程序分开打包)
  8. 持续集成工具集之二 Jenkins安装
  9. VisualStudio2019 DLL生成并使用教程(C++)最详细Demo教程
  10. mysql所有版本介绍_MySQL各版本介绍
  11. [Win+RF]新人视角-快速上手RF的接口测试
  12. 第一财经周刊:诺基亚之死
  13. zookeeper storm kafka开机简易启动脚本
  14. Xilinx火龙果学习笔记(1)---初识火龙果
  15. [转]这些道理不懂,你注定就是穷打工的命
  16. 魔兽争霸英雄英语名称
  17. 《喜羊羊与灰太狼》中羊村的团队建设
  18. 高响应比优先算法实现进程调度模拟
  19. APF有源电力滤波器Simulink仿真
  20. python实现找任意点关于直线的对称点

热门文章

  1. Atitit. 状态模式(State)attilax 总结 跟个策 略模式的区别
  2. paip.spring3 mvc servlet的配置以及使用最佳实践
  3. paip.论程序断点的类型以及设置总结
  4. paip.调用GUI接口.
  5. paip.提升用户体验---验证码识别与盲人
  6. 软件逆向分析方法小结
  7. 学习笔记 | 读完《公开募集证券投资基金销售机构监督管理办法》的几点感受
  8. (转)招商银行这一招,引起了各大银行的注意
  9. 关于julia的路径问题,往往很重要!
  10. 阿里云存储负责人吴结生:我经历的三个重大决策