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);
}
}
}
mongo增删改查封装(C#)的更多相关文章
- Python pymysql 增删改查封装
关于pymysql 的增删改查,简单做个封装,方便后面使用直接拿来调用即可. 其中 增删改 的处理其实是一致的,本可以使用统一的方法,但是为了明显区分,这里分开来写了. 直接看代码就即可,如下: # ...
- PDO 增删改查封装的类
Selecting Data 你在mysql_*中是这样做的 <?php $result = mysql_query('SELECT * from table') or die(mysql_er ...
- spring学习(四)spring的jdbcTemplate(增删改查封装)
Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...
- 网络系列之 cookie增删改查(封装)
什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...
- python之MySQL学习——简单的增删改查封装
1.增删改查封装类MysqlHelper.py import pymysql as ps class MysqlHelper: def __init__(self, host, user, passw ...
- sql增删改查封装
App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...
- mongo 增删改查
1. use foobar2. show dbs3. show collections4. db.system.indexes.find()5. db.persons.find()6. db.pers ...
- ADO.NET ORM数据库增删改查封装(工具一)
约束 public abstract class BaseModel { public int Id { get; set; } } 连接字符串 public static readonly stri ...
- Python cx_oracle自动化操作oracle数据库增删改查封装,优化返回查询数据
# coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_C ...
随机推荐
- jq如何实现内容的无限滚动
html: <div> <ul> <li>1</li> <li>2</li> <li>3</li> &l ...
- 在js中通过call或者apply实现继承
通过call或者apply可以实现函数里面this的改变,利用这一特点,可以实现继承 代码如下所示: /*父类*/ function Parent(add,net,no,teacher) { this ...
- 《C++ Primer Plus》第11章 使用类 学习笔记
本章介绍了定义和使用类的许多重要方面.一般来说,访问私有类成员的唯一方法是使用类方法.C++使用友元函数来避开这种限制.要让函数称为友元,需要在类声明中声明该函数,并在声明前加上关键字friend.C ...
- IIS禁止xml文件访问
今天在出现数据库账号信息泄露的时候,突然想到xml文件里面放着很多信息,而且网页能够直接访问到,这就很有问题了 开始的时候,也在IIS网站那里看到请求筛选这个设置,开始还以为不能加呢,还是同事说的.
- CSS3 属性组参考资料
CSS 属性组: 动画 背景 边框和轮廓 盒(框) 颜色 内容分页媒体 定位 可伸缩框 字体 生成内容 网格 超链接 行框 列表 外边距 Marquee 多列 内边距 分页媒体 定位 打印 Ruby ...
- JS时间格式化函数
Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month & ...
- 什么是"抓包"?怎样"抓包"?
你是网络管理员吗?你是不是有过这样的经历:在某一天的早上你突然发现网络性能急剧下降,网络服务不能正常提供,服务器访问速度极慢甚至不能访问,网络交换机端口指示灯疯狂地闪烁.网络出口处的路由器已经处于满负 ...
- Go基础---->go的基础学习(二)
这里记录的是go中函数的一些基础知识.道听途说终是浅,身临其境方知深. go的基础知识 一.go中函数的基础使用 package main import ( "fmt" " ...
- 域名绑定和域名解析(DNS)有什么不同?(转载)
域名解析在DNS处设置,DNS服务器将你的域名指向你的存储网页的服务器. 域名绑定在服务器中设置,存储你网页文件的服务器绑定了你的域名才能把浏览者引导到这个域名指定的物理位置来访问. 比如,你进一个高 ...
- 一、微信小游戏开发 --- 初次在微信开发者工具里跑Egret小游戏项目
尝试下Egret的小游戏开发,学习,学习,干IT,不学习,就得落后啊... 相关教程: Egret微信小游戏教程 微信公众平台-微信小游戏教程 微信公众平台-微信小游戏接入指南 开发版本: Egret ...