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即可!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2012-06-09 不忘本系列~目录
2012-06-09 将不确定变为确定~static被翻译成静态,你是否赞同
2011-06-09 不忘本~委托和事件(续)
2011-06-09 不忘本~委托与事件