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:的更多相关文章

  1. java操作mongodb & springboot整合mongodb

    简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...

  2. Node操作MongoDB并与express结合实现图书管理系统

    Node操作MongoDB数据库 原文链接:http://www.xingxin.me/ Web应用离不开数据库的操作,我们将陆续了解Node操作MongoDB与MySQL这是两个具有代表性的数据库, ...

  3. MongoDB学习-->命令行增删改查&JAVA驱动操作Mongodb

    MongoDB 是一个基于分布式文件存储的数据库. 由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关 ...

  4. MongoDB学习【四】—pymongo操作mongodb数据库

    一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...

  5. mongoose - 让node.js高效操作mongodb

    Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...

  6. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  7. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  8. PHP操作Mongodb之增删改查篇

    之前,我讲解过PHP中mongodb扩展的安装,及启动,链接操作[忘记了?去看看吧!PHP操作Mongodb之一].本文主要就是讲在PHP中Mongodb的增加,查询,修改及删除数据的操作. 1.增加 ...

  9. PHP操作Mongodb之高级查询篇

    本文主要讲解PHP中Mongodb的除了增删改查的一些其他操作. 在PHP操作Mongodb之增删改查篇中我们介绍了PHP中Mongodb的增加.删除.修改及查询数据的操作.本文主要是将查询时用到的高 ...

随机推荐

  1. view-source协议

    转自;https://blog.csdn.net/yuwq123/article/details/79481829

  2. 1.6-1.8 HBase表的物理模型

    一.HBase 物理模型 1. 1.Table中的所有行都按照row key的字典序排列: 2.Table在行的方向上分割为多个Region: 3.Region按天小分割的,每个表开始只有一个regi ...

  3. 【Data Structure & Algorithm】在排序数组中查找和为定值的两个数

    在排序数组中查找和为定值的两个数 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字,要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出 ...

  4. java的环境变量classpath中加点号 ‘.’ 的作用

    java的环境变量classpath中加点号 ‘.’ 的作用 “.”表示当前目录,就是编译或者执行程序时,你的.class文件所在的目录: 当找.class文件时,先去“.”路径下找,找不到的话,在去 ...

  5. JavaScript 对象字面量

    JavaScript 对象字面量   JavaScript 对象字面量 在编程语言中,字面量是一种表示值的记法.例如,"Hello, World!" 在许多语言中都表示一个字符串字 ...

  6. OpenCV第二课,嵌入MFC

    单纯显示图片,只需链接 opencv_core2411d.libopencv_highgui2411d.lib 1.首先创建一个MFC的dlg,添加Picture Control控件 void CCO ...

  7. [Offer收割]编程练习赛46

    [Offer收割]编程练习赛46赛后题解 A.AEIOU 分析

  8. AVAudioPlayer 如何在页面呈现之后按需初始化

    在页面中按需初始化 AVAudioPlayer 很多时候我们需要根据页面上内容的情况创建 AVAudioPlayer 对象,已达到降低无谓资源占用等目的.下面我们来看一段代码看起来正确的代码: ove ...

  9. 新装centos 6.5 基本配置

    开机自动联网 vi /etc/sysconfig/network-scripts/ifcfg-eth0; 将ONBOOT=no,改为ONBOOT=yes,保存退出 开机直接进入命令行模式 vi /et ...

  10. 上传到git

    https://blog.csdn.net/Lucky_LXG/article/details/77849212