定义IMongoRepositoryBase接口

public interface IMongoRepositoryBase
    {
        /// <summary>
        /// 新增一条数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="model"></param>
        void Insert<T>(T model) where T : class;
        /// <summary>
        /// 批量新增数据
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="list">泛型集合</param>
        void Insert<T>(IList<T> list) where T : class;

/// <summary>
        /// 更新一条数据
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="model">实体类</param>
        /// <param name="where">查询条件</param>
        bool Update<T>(T model, Expression<Func<T, bool>> where) where T : class;

/// <summary>
        /// 删除数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="where"></param>
        bool Delete<T>(Expression<Func<T, bool>> where) where T : class;

/// <summary>
        /// 根据条件,获取一条记录
        /// </summary>
        /// <typeparam name="T">返回值类型</typeparam>
        /// <param name="where"></param>
        /// <returns></returns>
        T GetModel<T>(Expression<Func<T, bool>> where) where T : class;

/// <summary>
        /// 获取列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="where"></param>
        /// <returns></returns>
        IList<T> GetList<T>(Expression<Func<T, bool>> where) where T : class;

/// <summary>
        /// 获取列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="orderBy"></param>
        /// <returns></returns>
        IList<T> GetList<T>(Expression<Func<T, object>> orderBy) where T : class;
        /// <summary>
        /// 获取带排序的列表
        /// </summary>
        /// <typeparam name="T">数据类型</typeparam>
        /// <param name="where">查询条件</param>
        /// <param name="orderBy">排序</param>
        /// <returns></returns>
        IList<T> GetList<T>(Expression<Func<T, bool>> where, Expression<Func<T, object>> orderBy) where T : class;

/// <summary>
        /// 获取分页
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="where"></param>
        /// <param name="orderby"></param>
        /// <returns></returns>
        IList<T> GetList<T>(int pageIndex, int pageSize, Expression<Func<T, bool>> where, Expression<Func<T, object>> orderby) where T : class;

/// <summary>
        /// 获取总记录数
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="where"></param>
        /// <returns></returns>
        long GetTotalCount<T>(Expression<Func<T, bool>> where) where T : class;

}

定义MongoRepositoryBase类,并实现IMongoRepositoryBase接口

  ?  ? ) * pageSize;

return collection.Find(where).SortByDescending(orderby).Skip(skip).Limit(pageSize).ToListAsync().Result;
        }

/// <summary>
        /// 获取总记录数
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="where"></param>
        /// <returns></returns>
        public long GetTotalCount<T>(Expression<Func<T, bool>> where) where T : class
        {
            //获取链表
            var collection = db.GetCollection<T>(collectionName);

if (where != null)
            {
                return collection.CountAsync(where).Result;
            }
            else
            {
                return collection.CountAsync(new BsonDocument()).Result;
            }
        }
    }

MongoDB官网驱动仓库封装的更多相关文章

  1. Mongodb 官网驱动2.2.4.26版本 增,删 改,查

    Mongodb是3.2.7版本 最近在学习mongodb数据库在网上找到的都不是2.X版本以下的,因为驱动从2.X以后修改了很多,以前不支持linq现2.X也支持了, Mongodb 启动服务就不说了 ...

  2. Mongodb 官网驱动2.2.4.26版本 增,删 改,查,mongodb2.2.4.26

    Mongodb是3.2.7版本 最近在学习mongodb数据库在网上找到的都不是2.X版本以下的,因为驱动从2.X以后修改了很多,以前不支持linq现2.X也支持了, Mongodb 启动服务就不说了 ...

  3. Ubuntu14.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  4. Ubuntu16.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  5. MongoDB 红宝书-MongoDB官网使用指南

    本文转载自Mongodb中文社区:http://www.mongoing.com/archives/27359 无论你是MongoDB的使用者.爱好者.初学者还是路人甲,有一个学习与进修的资源宝藏是千 ...

  6. MongoDB 官网教程 下载 安装

    官网:https://www.mongodb.com/ Doc:https://docs.mongodb.com/ Manual:https://docs.mongodb.com/manual/ 安装 ...

  7. Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu14.04下Mongodb(离线安 ...

  8. Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...

  9. Linux小项目/rhel-基于同步官网yum仓库数据搭建本地yum服务器

    本文的实验环境:aws上的Redhat 7.x , 同样也适用于Centos 7.x 简单说主要分为三步: (1) 向官网同步yum数据,可以根据具体情况,创建脚本及配置周期例行任务  (2) 搭建w ...

随机推荐

  1. vs

    https://www.visualstudio.com/downloads/download-visual-studio-vs

  2. OD使用教程

    OD使用教程: 跳转指令.满足才能跳转成功  

  3. memcached总结

    Memcached说明文档 Memcached是什么? Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数 ...

  4. UI线程和work线程

    UI线程处理消息,比如重绘,响应键盘鼠标等等跟消息有关的处理. 而工作线程一般是你自己写的用来处理数据的,比如操作数据库等等.(work线程)    

  5. comet4j

    简介 准备工作 下载服务端jar文件 下载客户端js文件 修改服务器配置文件 在web.xml中加载Comet4J框架 客户端使用简介 JS.Engine.start方法 JS.Engine.stop ...

  6. SQLServer数据库中创建临时表

    IF object_id('tempdb..#jimmy') is not NULL BEGIN DROP TABLE #jimmy; END IF object_id('tempdb..#jimmy ...

  7. Android上dip、dp、px、sp等单位说明(转)

    dip  device independent pixels(设备独立像素). 不同设备不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. 在 ...

  8. 使用html2canvas实现网页截图并嵌入到PDF

    以前我们只能通过截图工具进行截取图像.这使得在业务生产中,变得越来越不方便.目前的浏览器功能越来越强大,H5也逐渐普及,浏览器也可以实现截图了.这里来聊下之前在工作中用到的html2canvas.这里 ...

  9. Python垃圾回收机制

    引用计数Python默认的垃圾收集机制是“引用计数”,每个对象维护了一个ob_ref字段.它的优点是机制简单,当新的引用指向该对象时,引用计数 引用计数 Python默认的垃圾收集机制是“引用计数”, ...

  10. Asp.net Authenticated users 权限问题

    偶然发现Windows,非系统盘 权限具有这个组Authenticated users 拥有这个组会出现的问题: Web站点可以访问非Web目录的文件.