[总结].net操作MongoDb通用基础类1:
public class MongoDBHelper
{ //定义Mongo服务
private MongoServer mongo = null;
//获取databaseName对应的数据库,不存在则自动创建
private MongoDatabase mongoDatabase; /// <summary>
/// Mongo 数据库连接
/// </summary>
public MongoDBHelper()
{
mongo = MongoServer.Create(MongoDBConfig.gConnectionString);
mongoDatabase = mongo.GetDatabase(MongoDBConfig.gDatabaseName) as MongoDatabase;
mongo.Connect();
} /// <summary>
/// Mongo 数据库断开连接
/// </summary>
public void CloseConnection()
{
if (this.mongo != null)
{
this.mongo.Disconnect();
this.mongo = null;
}
} /// <summary>
/// 根据条件查找所有记录
/// </summary>
/// <returns></returns>
public IEnumerable<BsonDocument> FindAll(IMongoQuery pQuery,int currentpage,int pagesize, string pTable)
{
//获取collectionName对应的集合,不存在则自动创建
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;
return mongoCollection.Find(pQuery).SetLimit(pagesize).SetSkip(pagesize * currentpage).ToList(); ;
} /// <summary>
/// 查找所有记录
/// </summary>
/// <returns></returns>
public IEnumerable<BsonDocument> FindAll(int currentpage,int pagesize,string pTable)
{
//获取collectionName对应的集合,不存在则自动创建
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;
return mongoCollection.FindAll().SetLimit(pagesize).SetSkip(pagesize*currentpage).ToList();
} /// <summary>
/// 根据条件查找所有记录
/// </summary>
/// <returns></returns>
public IEnumerable<BsonDocument> FindAll(IMongoQuery pQuery, string pTable)
{
//获取collectionName对应的集合,不存在则自动创建
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;
return mongoCollection.Find(pQuery);
} /// <summary>
/// 查找所有记录
/// </summary>
/// <returns></returns>
public IEnumerable<BsonDocument> FindAll(string pTable)
{
//获取collectionName对应的集合,不存在则自动创建
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;
return mongoCollection.FindAll();
} /// <summary>
/// 增加一条记录
/// </summary>
/// <param name="doc"></param>
public void Add(object obj, string pTable)
{ //获取collectionName对应的集合,不存在则自动创建
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;
mongoCollection.Insert(obj);
}
/// <summary>
/// 删除一条记录
/// </summary>
public void Delete(string id, string pTable)
{ //获取collectionName对应的集合,不存在则自动创建
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;
mongoCollection.Remove(new QueryDocument { { "_id", id } });
} #region 获取当前连接数据库的指定集合【依据类型】
/// <summary>
/// 获取当前连接数据库的指定集合【依据类型】
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public MongoCollection<T> GetCollection<T>(string name,WriteConcern writeConcern) where T : class
{
return this.mongoDatabase.GetCollection<T>(name,writeConcern);
} /// <summary>
/// 获取当前连接数据库的指定集合【根据指定名称】
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="name">集合名称</param>
/// <returns></returns>
public MongoCollection<T> GetCollection<T>(string pTableName) where T : class
{
return this.mongoDatabase.GetCollection<T>(pTableName);
} #endregion #region GridFs 文件处理 /// <summary>
/// 保存2进制数据到db里面
/// </summary>
/// <param name="byteFile"></param>
/// <returns></returns>
public string GridFsSave(byte[] byteFile)
{
string filename = Guid.NewGuid().ToString();
//这里GridFile构造函数有个重载,bucket参数就是用来替换那个创建集合名中默认的"fs"的。
MongoGridFS gridFile = new MongoGridFS(mongoDatabase);
using (MongoGridFSStream gridFileStream = gridFile.Create(filename))
{
gridFileStream.Write(byteFile, 0, byteFile.Length);
}
return filename; } public void SaveGridFsFile(BsonDocument doc, string pTable)
{ MongoCollection<BsonDocument> mongoCollection =mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>; mongoCollection.Save(doc);
}
/// <summary>
/// 读取为filename的文件
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public byte[] GridFsRead(string filename)
{ MongoGridFS gridFile = new MongoGridFS(mongoDatabase);
MongoGridFSStream gridFileStream = gridFile.OpenRead(filename); byte[] bytes = new byte[gridFileStream.Length]; gridFileStream.Read(bytes, 0, bytes.Length); return bytes; }
/// <summary>
/// 根据条件取一条数据
/// </summary>
/// <param name="fitter"></param>
/// <param name="pTable"></param>
/// <returns></returns>
public BsonDocument GetFsFileInfo(QueryDocument fitter, string pTable)
{
MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>; BsonDocument doc = mongoCollection.FindOne(fitter);
return doc;
} /// <summary>
/// 删除文件
/// </summary>
/// <param name="filename"></param>
public void GridFsDelete(string filename)
{ MongoGridFS gridFile = new MongoGridFS(mongoDatabase); gridFile.Delete(new QueryDocument("filename", filename)); }
#endregion
}
备注:由于最近使用.net开发一个项目,有机会用到了mongodb,我自己改成通用类
方法:
1.找到mongodb官网
2.下载mongodb.net的类库,我用的是MongoDB.Bson.dll,MongoDB.Driver.dll的1.7版本,每个版本还不一样.....mongodb对语言访问支持正在加强.
3.以上是底层代码
[总结].net操作MongoDb通用基础类1:的更多相关文章
- java操作mongodb & springboot整合mongodb
简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...
- Node操作MongoDB并与express结合实现图书管理系统
Node操作MongoDB数据库 原文链接:http://www.xingxin.me/ Web应用离不开数据库的操作,我们将陆续了解Node操作MongoDB与MySQL这是两个具有代表性的数据库, ...
- MongoDB学习-->命令行增删改查&JAVA驱动操作Mongodb
MongoDB 是一个基于分布式文件存储的数据库. 由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关 ...
- MongoDB学习【四】—pymongo操作mongodb数据库
一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...
- mongoose - 让node.js高效操作mongodb
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- PHP操作Mongodb之增删改查篇
之前,我讲解过PHP中mongodb扩展的安装,及启动,链接操作[忘记了?去看看吧!PHP操作Mongodb之一].本文主要就是讲在PHP中Mongodb的增加,查询,修改及删除数据的操作. 1.增加 ...
- PHP操作Mongodb之高级查询篇
本文主要讲解PHP中Mongodb的除了增删改查的一些其他操作. 在PHP操作Mongodb之增删改查篇中我们介绍了PHP中Mongodb的增加.删除.修改及查询数据的操作.本文主要是将查询时用到的高 ...
随机推荐
- hibernate 学习 五 hibernate核心接口
一 Configuration接口 Configuration对象只存在于系统的初始化阶段.配置相关. 配置文件可以使用默认的路径,也可以指定路径. Configuration config = ne ...
- MSSQL 调用 .net 代码
http://www.cnblogs.com/laozhao8/p/3398681.html 在SQL Server中调用.NET程序集 需求是这样的,我在.net程序里操作数据时将一些字段数据加 ...
- int和Integer及拆箱与装箱
int和Integer 如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下In ...
- python 之元类
定义类的两种方法: 1.class定义 2.type(类名,类的基类们,类的名称空间) # 定义类的三要素:类名.基类.名称空间 class_name = 'Chinese' class_bases ...
- Flutter实战视频-移动电商-46.详细页_自定义TabBar Widget
46.详细页_自定义TabBar Widget 主要实现详情和评论的tab provide定义变量 自己做一个tab然后用provide去控制 定义两个变量来判断是左侧选中了还是右侧选中了.并定义一个 ...
- PXE与cobbler实现系统自动安装
安装操作系统的流程事实上并不复杂,如果你要给三五台服务器安装系统那么我们手工去安装即可.但是当我们要部署的是大型机房的操作系统的时候显然手动安装去一台一台的点,是不现实的.尤其现在互联网行业高速发展, ...
- bugfree-解决方案的意思
BugFree的7种解决方案各自的含义: By Design - 就是这么设计的,无效的Bug Duplicate - 这个问题别人已经发现了,重复的Bug External - 是个外部因素(比如浏 ...
- HTML学习笔记(六)TCP/IP
TCP/IP 是供已连接因特网的计算机进行通信的通信协议. 在 TCP/IP 中包含一系列用于处理数据通信的协议: TCP (传输控制协议) - 应用程序之间通信 UDP (用户数据包协议) - 应用 ...
- E20180525-hm
sensitive adj. 敏感的; 感觉的; [仪] 灵敏的; 易受影响的; lookup v. 查找; 查表; speedy adj. 快的,迅速的; 敏捷的 marshal vt. 整理, ...
- Swift3.0 字典简单使用
Dictionary //定义一个只能存放string 类型的字典 var dict:Dictionary<String,String> = ["一班":"2 ...