[总结].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.以上是底层代码

时间: 2024-10-12 22:40:32

[总结].net操作MongoDb通用基础类1:的相关文章

Ruby操作MongoDB(进阶五)-数据库管理Administration

通过前面四章的学习,本章我们开始学习Ruby操作MongoDB数据库中的数据管理Administration 数据库相关 Ruby驱动为数据库对象执行命令,获取集合列表,和管理任务提供了多种多样的帮助. 1.1 获取集合列表List Collection 通过collections和collection_names两个指令可以获取集合列表和集合的名字.例如: client=Mongo::Client.new(['127.0.0.1:27017'],:database=>'film') datab

MongDB基础学习(七)—— 【MongoDB for Java】Java操作MongoDB

[MongoDB for Java]Java操作MongoDB 开发的产品为了融资,不停得改版,从第一版到现在最新版本,最后发现公司发展方向都变了,有最初电子商务改成VR内容提供者(没办法,要别人钱,就得按照别人的规划的战略走).本来本章节会放到后面再做讲解,无奈,部门需要做一次培训任务,我就想到拿Java操作MongoDB作为培训内容,开发环境和依赖jar如下: (1)开发环境: System:Windows IDE:eclipse Database:mongoDB2.6 Maven:apac

Ruby操作MongoDB(进阶)-CRUD操作

MongDB数据库的使用离不开CRUD操作.什么是CRUD,就是创建文档,读取文档信息,更新文档和删除文档. key-value键值对标记 在MongoDB的Ruby驱动中,Key_value键值多次出现.而且有时会出现语法上的巧合,这取决于在使用的Ruby版本中如何申明. 在文档创建步骤中,1.9及之后版本支持以下语法: document={name:"Tom",age:20}. 但是如果你使用的是2.2或者更高的版本,你可以用双引号将你的key包起来.如: document={&q

PHP操作MongoDB技术总结

<?php /** * PHP操作MongoDB学习笔记 */ //************************* //** 连接MongoDB数据库 **// //************************* //格式=>("mongodb://用户名:密码 @地址:端口/默认指定数据库",参数) $conn = new Mongo(); //可以简写为 //$conn=new Mongo(); #连接本地主机,默认端口. //$conn=new Mongo(&

node操作MongoDB数据库之插入

在上一篇中我们介绍了MongoDB的安装与配置,接下来的我们来看看在node中怎样操作MongoDB数据库. 在操作数据库之前,首先应该像关系型数据库一样建个数据库把... 启动数据库 利用命令提示符: 1.在创建数据库之前,我们应该启动数据库服务器 mongod --dbpath d:\MongoDB\data 注意:不要关闭这个数据库服务器...不然数据库就被关闭了 2.使用如下语句创建一个数据库 use mydb 这样mongodb会帮助我们自动创建他们,当然这个时候数据库还是空的. 3.

学习MongoDB--(11):应用举例(利用java操作MongoDB)

原文地址:http://blog.csdn.net/drifterj/article/details/7948090 目录地址:http://blog.csdn.net/DrifterJ/article/category/1191327/2 前面我们都是通过shell来操作存取MongoDB的数据,shell中使用的语言就是javascript.我们这次说一下如何通过Java来访问操作MongoDB数据库的. Java驱动程序是MongoDB最早的驱动,已用于生产环境很长时间,十分稳定.可以到M

【转】PHP操作MongoDB GridFS 存储文件

PHP操作MongoDB GridFS 存储文件,如图片文件 GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储.

PHP操作Mongodb之增删改查篇

之前,我讲解过PHP中mongodb扩展的安装,及启动,链接操作[忘记了?去看看吧!PHP操作Mongodb之一].本文主要就是讲在PHP中Mongodb的增加,查询,修改及删除数据的操作. 1.增加数据 语法格式: $db->insert($array);  //参数表示需要插入的数据 例如:我们插入一个id为1,名称为PHP,年龄为25的数据.代码如下: <?php //连接数据库 $connnect = new Mongo("mongodb://127.0.0.1:27017&

java操作mongoDB实现CURD

java操作mongoDB mongoDB作为一个牛气哄哄的nosql内存数据库,的确有很多优点,对于大数据量.高并发.弱事务的互联网应用,MongoDB可以应对自如.接触到mongoDB 参考了下api实现了增删改查.mongoDB 是面向对象设计,不用写sql语句 直接操作api 方法 就可以实现,这会儿数据库语句写不好的娃娃们有福了.直接贴码: DataTest.java package com.zk.db; import java.net.UnknownHostException; im