1. 程式人生 > >MongoDB學習筆記~大叔分享批量新增—批量更新—批量刪除

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即可!

回到目錄