zoukankan      html  css  js  c++  java
  • 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即可!

    回到目录

  • 相关阅读:
    C语言第三次博客作业---单层循环结构
    C语言第二次博客作业---分支结构
    C语言第一次博客作业——输入输出格式
    C语言--第0次作业
    Codeforces Round #341 Div.2 A. Wet Shark and Odd and Even
    Sources
    kuangbin_SegTree E (HDU 1698)
    (MST) HDOJ 1102 Constructing Roads
    kuangbin_SegTree B (HDU 1754)
    kuangbin_SegTree A (HDU 1166)
  • 原文地址:https://www.cnblogs.com/lori/p/4564706.html
Copyright © 2011-2022 走看看