-
C#操作MongoDB的帮助类-简单封装
之前做项目,需要记录一些请求URL,响应时间,异常日志,变更日志等信息,项目本身用的是Sql Server,考虑到这些信息增长速度快,占用空间大,且平时除了统计下网站信息,查看下日志,并不会进行关联查询和操作,所以决定这些信息不配录入我的主库,当时百度上看了看,发现MongoDB不错,所以用了2个小时研究了下,就写入项目中了。。。
好了,不多说,直接把DLL和代码记下来,以便以后直接使用。
C#版的MongoDB驱动是用官方提供的mongo-csharp-driver
具体下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads
引用:MongoDB.Driver.dll,MongoDB.Bson.dll
具体代码部分:
/// <summary> /// MongoDB帮助类 /// </summary> public class MongoDBHelper { /// <summary> /// 数据库连接字符串 /// </summary> private const string strconn = "mongodb://127.0.0.1:27017"; /// <summary> /// 数据库名称 /// </summary> private const string dbName = "pxdnet"; MongoServer server = new MongoClient(strconn).GetServer(); static MongoDatabase db; /// <summary> /// 构造函数 /// </summary> public MongoDBHelper() { if(db == null) { db = server.GetDatabase(dbName); } } /// <summary> /// 获取数据库 /// </summary> /// <returns></returns> public static MongoDatabase GetDB() { return new MongoClient(strconn).GetServer().GetDatabase(dbName); } /// <summary> /// 新增 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> public static T Add<T>(T entity) { var col = GetDB().GetCollection(typeof(T).Name); col.Insert<T>(entity); return entity; } /// <summary> /// 编辑 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <param name="id"></param> public static void Update<T>(T entity, ObjectId id) { var col = GetDB().GetCollection(typeof(T).Name); BsonDocument bsd = BsonExtensionMethods.ToBsonDocument(entity); IMongoQuery query = Query.EQ("_id", id); col.Update(query, new UpdateDocument(bsd)); } /// <summary> /// 删除 /// remark:条件删除 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="dics"></param> public static void Delete<T>(Dictionary<string, object> dics) { var col = GetDB().GetCollection(typeof(T).Name); var query = new QueryDocument(dics); var result = col.Remove(query); } /// <summary> /// 删除 /// remark:根据ObjectId删除 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="id"></param> public static void Delete<T>(ObjectId id) { var col = GetDB().GetCollection(typeof(T).Name); IMongoQuery query = Query.EQ("_id", id); col.Remove(query); } /// <summary> /// 查询全部 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static List<T> QueryList<T>() { var col = GetDB().GetCollection(typeof(T).Name); var result = col.FindAllAs<T>(); return result.ToList<T>(); } /// <summary> /// 根据条件查询 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="dics"></param> /// <returns></returns> public static List<T> QueryList<T>(Dictionary<string,object> dics) { var col = GetDB().GetCollection(typeof(T).Name); var query = new QueryDocument(dics); var result = col.FindAs<T>(query); return result.ToList<T>(); } }
由于用到的功能不多,主要是插入和查询,偶尔记录下响应时间会用到更新操作,所以简单的封装了增删改查,如果需要更多其他操作的朋友,可以看下这篇帖子,介绍的挺全的。
https://www.cnblogs.com/cuihongyu3503319/p/9354209.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式