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);
}
}
}

mongo增删改查封装(C#)的更多相关文章

  1. Python pymysql 增删改查封装

    关于pymysql 的增删改查,简单做个封装,方便后面使用直接拿来调用即可. 其中 增删改 的处理其实是一致的,本可以使用统一的方法,但是为了明显区分,这里分开来写了. 直接看代码就即可,如下: # ...

  2. PDO 增删改查封装的类

    Selecting Data 你在mysql_*中是这样做的 <?php $result = mysql_query('SELECT * from table') or die(mysql_er ...

  3. spring学习(四)spring的jdbcTemplate(增删改查封装)

    Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...

  4. 网络系列之 cookie增删改查(封装)

    什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...

  5. python之MySQL学习——简单的增删改查封装

    1.增删改查封装类MysqlHelper.py import pymysql as ps class MysqlHelper: def __init__(self, host, user, passw ...

  6. sql增删改查封装

    App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  7. mongo 增删改查

    1. use foobar2. show dbs3. show collections4. db.system.indexes.find()5. db.persons.find()6. db.pers ...

  8. ADO.NET ORM数据库增删改查封装(工具一)

    约束 public abstract class BaseModel { public int Id { get; set; } } 连接字符串 public static readonly stri ...

  9. Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据

    # coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_C ...

随机推荐

  1. Unity3d 手机屏幕自动适配

    我提到手机自动适配的一个方法中:postion和Scale,“比例”概念适配手机.原始资源是480*800 经过实际项目考验,个人感觉: 1,UICamera是自动适配分辨率,UI上也是拉伸.放大UI ...

  2. 复习前面一个月的学习C#感觉道路好艰难啊

    今天是复习前面学习的内容,感觉这一个月来真的学习了很多,但是掌握的不好,好多都是在老师讲完课后做起来练习感觉这知识用起来蛮轻松地,但是经过昨天和今天的复习发现好多还是给忘记啦,甚是失落啊,刚开始就知道 ...

  3. OpenGL超级宝典总结(二)2D/3D笛卡尔坐标、坐标裁剪、纹理坐标、MVP转换等概念

    如果你想把图形渲染在正确的位置上,那么坐标的设置就很重要了.在OpenGL中,与坐标相关的主要有笛卡尔坐标.坐标裁剪.纹理坐标.MVP(Model View Projection)转换. 1.笛卡尔坐 ...

  4. 定义了一个UIImageView如何使加载的图片不会失真 UIImageView的Frame值是固定的

    定义了一个UIImageView如何使加载的图片不会失真  UIImageView的Frame值是固定的 UIViewContentModeScaleToFill, 缩放内容到合适比例大小 UIVie ...

  5. C++异常 调用abort()

    以一个计算两个数的调和平均数的函数为例.两个数的调和平均数的定义是:这两个数倒数的平均值的倒数,因此表达式为:1.0 * x * y / (x + y)如果y是x的负值,则上述公式将导致被零除——一种 ...

  6. LeetCode——Basic Calculator

    Description: Implement a basic calculator to evaluate a simple expression string. The expression str ...

  7. Vue如何引入远程JS文件

    直接在dom上操作: export default { mounted() { const s = document.createElement('script'); s.type = 'text/j ...

  8. Egret打包App 修改App名称和图标 (Egret4.1.0)

    图标替换位置在项目res下的drawable这些目录下,用新图标覆盖即可. 这里我用白色图片替换了白鹭默认的图片ic_launcher.png 修改App名字,在res->value->s ...

  9. xcode官网下载地址

    https://developer.apple.com/downloads/

  10. JAVA内存构成详解

    java memory = direct memory(直接内存) + jvm memory(MaxPermSize +Xmx)   1)直接内存跟堆 直接内存则是一块由程序本身管理的一块内存空间,它 ...