zoukankan      html  css  js  c++  java
  • mongo增删改查封装(C#)

    Framework版本:.Net Framework 4

    ConnectionUtil源码参见:https://www.cnblogs.com/threadj/p/10536273.html

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using MongoDB.Driver;
    using MongoDB.Bson;
    using MongoDB.Driver.Builders;
    using ReligionServer.util;
    
    namespace ReligionServer.repository {
        public class BaseRepository {
    
            private MongoCollection collection = null;
    
            //将获取集合对象的方法再一次封装
            private MongoCollection GetColl<T>(String collectionName) {
                return ConnectionUtil.GetCollection<T>(collectionName);
            }
            //-------------------------------------------------------------------------------------------------------------------------------------------
    
            
    
            //新增一则记录
            public WriteConcernResult Insert<T>(T t, String collectionName) {
                return GetColl<T>(collectionName).Insert<T>(t);
            }
    
            //批量新增
            public IEnumerable<WriteConcernResult> InsertBatch<T>(List<T> list, String collectionName) {
                return GetColl<T>(collectionName).InsertBatch(typeof(List<T>), list);
            }
        
    
            //根据Id查询指定集合名为collectionName的数据
            public T FindById<T>(String id,String collectionName) {
                collection = GetColl<T>(collectionName);
                T t = collection.FindOneByIdAs<T>(ObjectId.Parse(id));
                return t;
            }
    
            //查询符合条件的第一条数据
            public T FindOneByQuery<T>(IMongoQuery query, String collectionName) {
                collection = GetColl<T>(collectionName);
                T t = collection.FindOneAs<T>(query);
                return t;
            }
    
            //查询指定集合中符合Query条件的所有的文档
            public List<T> FindList<T>(IMongoQuery query, String collectionName) {
                //MongoCursor<T> cursor = ConnectionUtil.GetCollection<T>(collectionName).FindAs<T>(query);
                List<T> list = GetColl<T>(collectionName).FindAs<T>(query).ToList<T>();
                return list;
            }
    
    
            public WriteConcernResult Update<T>(IMongoQuery query, IMongoUpdate update, String collectionName) {
                return GetColl<T>(collectionName).Update(query, update);
            }
    
            //删除集合名为collectionName的且满足query条件的文档
            public WriteConcernResult Remove<T>(IMongoQuery query, String collectionName) {
                return GetColl<T>(collectionName).Remove(query);
            }
        }
    }
  • 相关阅读:
    return 与 exit() 的区别
    RtlInitUnicodeString
    计算机网络 学习笔记-概论
    STM32学习笔记(五) USART异步串行口输入输出(轮询模式)
    STM32学习笔记(四) RCC外设的学习和理解
    简单RTOS学习(一) uc/os-II 工程模板建立
    web前端学习(一) html+js实现文本框背景及只读属性修改
    TCP/IP协议学习(一) LWIP实现网络远程IAP下载更新
    STM32学习笔记(三) STM32的GPIO的深入学习
    STM32学习笔记(二) 基于STM32-GPIO的流水灯实现
  • 原文地址:https://www.cnblogs.com/threadj/p/10536278.html
Copyright © 2011-2022 走看看