博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除
阅读量:5858 次
发布时间:2019-06-19

本文共 1399 字,大约阅读时间需要 4 分钟。

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

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

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

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

你可能感兴趣的文章
在工作流中动态加载活动(Activity)
查看>>
优化系列 | 游戏数据表拆分优化经典案例
查看>>
VDI序曲十四 使用 RemoteFX 安装和配置 USB 重定向
查看>>
使用海蜘蛛HSpider模拟防火墙搭建网络案例说明v1.0
查看>>
使用组策略实现文件复制
查看>>
提升团队战斗力的要点
查看>>
019 应该把管理部分放到哪儿?
查看>>
深入浅出MFC“文档/视图”架构(5)――框架
查看>>
【JSP 随笔之一】JSP常用语法和使用总括&&JSP服务器端和客户端代码互相调用
查看>>
通过TMG发布Office Web Apps服务器到外部
查看>>
Munin监控的安装与配置
查看>>
Linq==数据访问层?
查看>>
js html 事件冒泡
查看>>
Spring 3 整合Apache CXF WebService
查看>>
.Net Attribute详解(上)-Attribute本质以及一个简单示例
查看>>
cassandra cpp driver中bind list——用cass_statement_bind_collection函数
查看>>
使用 Task 简化异步编程
查看>>
C# 中LinkLabel的简单使用
查看>>
Oracle笔记 四、增删改、事务
查看>>
《算法设计手册》面试题解答 第五章:图的遍历 附:DFS应用之找挂接点
查看>>