MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除
回到目录
说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的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学习笔记~大叔分享批量添加—批量更新—批量删除相关推荐
- MongoDB学习笔记~为IMongoRepository接口添加分页取集合的方法
回到目录 对于数据分页,我们已经见的太多了,几乎每个列表页面都要用到分页,这已经成了一种定理了,在进行大数据展示时,如果不去分页,而直接把数据加载到内存,这简直是不可以去相向的,呵呵,在很多ORM工具 ...
- [权威指南]学习笔记——第3章 创建、更新和删除文档
插入并保存文档 db.foo.insert({文档}); 插入insert最大的文档为16mb,如果查询一个稳定大小,可以用Object.bsonsize(文档名),单位为字节 批量增加,mongoi ...
- PHP操作MongoDB学习笔记
PHP操作MongoDB技術總結 <?php /** * PHP操作MongoDB学习笔记 */ //************************* //** 连接MongoDB数据库 ...
- 非关系型数据库MongoDB学习笔记
MongoDB学习笔记 --周灿 创建数据库 use "databasename" 查看数据库 show dbs 给指定数据库添加集合和插入记录 db.集合名.insert({ ...
- MongoDB学习笔记(一) MongoDB介绍及安装
系列目录 MongoDB学习笔记(一) MongoDB介绍及安装 MongoDB学习笔记(二) 通过samus驱动实现基本数据操作 MongoDB学习笔记(三) 在MVC模式下通过Jq ...
- MongoDB学习笔记~对集合属性的操作
$unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$pop操作 ...
- MongoDB学习笔记一:MongoDB的下载和安装
MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...
- MongoDB 学习笔记八 复制、分片、备份与恢复、监控
MongoDB 学习笔记八 复制.分片.备份与恢复.监控 MongoDB复制(副本集) 什么是复制? MongoDB 复制原理 MongoDB 副本集设置 副本集添加成员 MongoDB 分片 分片 ...
- WordPress批量添加、修改、删除自定义字段的sql命令
写一下WordPress批量添加.修改.删除自定义字段的sql命令,今天有个小伙伴问我一个问题,原本他用的是另外一个主题,看见日主题比较美观,于是他换到了日主题,用日主题的时候遇到了个问题,凡是资源站 ...
- MongoDB学习笔记(3)- Mongo Shell 常用查询命令
MongoDB学习笔记(3)- Mongo Shell 常用查询命令 本文所使用的MongoDB版本为 4.0.10 > db.version(); 4.0.10 一.find 命令进行简查询 ...
最新文章
- 步步为营-68-asp.net简单练习(get set)
- python适合零基础学习吗-Python适合不适合零基础学习呢?老男孩教育
- git bash退回上一个文件夹
- 小鱼儿 c语言,小鱼儿请进.
- spring boot controller构造方法_面试前突击Spring,我只需要十分钟,那么你呢?
- java并发核心知识体系精讲_JVM核心知识体系
- Springboot瘦身(lib和程序分开打包)
- 持续集成工具集之二 Jenkins安装
- VisualStudio2019 DLL生成并使用教程(C++)最详细Demo教程
- mysql所有版本介绍_MySQL各版本介绍
- [Win+RF]新人视角-快速上手RF的接口测试
- 第一财经周刊:诺基亚之死
- zookeeper storm kafka开机简易启动脚本
- Xilinx火龙果学习笔记(1)---初识火龙果
- [转]这些道理不懂,你注定就是穷打工的命
- 魔兽争霸英雄英语名称
- 《喜羊羊与灰太狼》中羊村的团队建设
- 高响应比优先算法实现进程调度模拟
- APF有源电力滤波器Simulink仿真
- python实现找任意点关于直线的对称点