国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[總結(jié)].net操作MongoDb通用基礎(chǔ)類1:

2019-11-17 02:34:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

[總結(jié)].net操作MongoDb通用基礎(chǔ)類1:

2015-02-06 10:28 by xiaoxiao001, ... 閱讀, ... 評(píng)論, 收藏, 編輯
    public class MongoDBHelper    {                //定義Mongo服務(wù)        PRivate MongoServer mongo = null;        //獲取databaseName對(duì)應(yīng)的數(shù)據(jù)庫(kù),不存在則自動(dòng)創(chuàng)建        private MongoDatabase mongoDatabase;        /// <summary>        /// Mongo 數(shù)據(jù)庫(kù)連接        /// </summary>        public MongoDBHelper()        {            mongo = MongoServer.Create(MongoDBConfig.gConnectionString);            mongoDatabase = mongo.GetDatabase(MongoDBConfig.gDatabaseName) as MongoDatabase;            mongo.Connect();        }        /// <summary>        /// Mongo 數(shù)據(jù)庫(kù)斷開連接        /// </summary>        public void CloseConnection()        {            if (this.mongo != null)            {                this.mongo.Disconnect();                this.mongo = null;            }        }        /// <summary>        /// 根據(jù)條件查找所有記錄        /// </summary>        /// <returns></returns>        public IEnumerable<BsonDocument> FindAll(IMongoQuery pQuery,int currentpage,int pagesize, string pTable)        {            //獲取collectionName對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建            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對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建            MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;            return mongoCollection.FindAll().SetLimit(pagesize).SetSkip(pagesize*currentpage).ToList();        }        /// <summary>        /// 根據(jù)條件查找所有記錄        /// </summary>        /// <returns></returns>        public IEnumerable<BsonDocument> FindAll(IMongoQuery pQuery, string pTable)        {            //獲取collectionName對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建            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對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建            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對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建            MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;            mongoCollection.Insert(obj);        }        /// <summary>        /// 刪除一條記錄        /// </summary>        public void Delete(string id, string pTable)        {                        //獲取collectionName對(duì)應(yīng)的集合,不存在則自動(dòng)創(chuàng)建            MongoCollection<BsonDocument> mongoCollection = mongoDatabase.GetCollection<BsonDocument>(pTable) as MongoCollection<BsonDocument>;            mongoCollection.Remove(new QueryDocument { { "_id", id } });        }        #region 獲取當(dāng)前連接數(shù)據(jù)庫(kù)的指定集合【依據(jù)類型】        /// <summary>        /// 獲取當(dāng)前連接數(shù)據(jù)庫(kù)的指定集合【依據(jù)類型】        /// </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>        /// 獲取當(dāng)前連接數(shù)據(jù)庫(kù)的指定集合【根據(jù)指定名稱】        /// </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進(jìn)制數(shù)據(jù)到db里面      /// </summary>      /// <param name="byteFile"></param>      /// <returns></returns>        public string GridFsSave(byte[] byteFile)        {            string filename = Guid.NewGuid().ToString();            //這里GridFile構(gòu)造函數(shù)有個(gè)重載,bucket參數(shù)就是用來(lái)替換那個(gè)創(chuàng)建集合名中默認(rèn)的"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>        /// 根據(jù)條件取一條數(shù)據(jù)        /// </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開發(fā)一個(gè)項(xiàng)目,有機(jī)會(huì)用到了mongodb,我自己改成通用類

方法:

1.找到mongodb官網(wǎng)

2.下載mongodb.net的類庫(kù),我用的是MongoDB.Bson.dll,MongoDB.Driver.dll的1.7版本,每個(gè)版本還不一樣.....mongodb對(duì)語(yǔ)言訪問支持正在加強(qiáng).

3.以上是底層代碼


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽阳市| 八宿县| 江门市| 霍州市| 郯城县| 陆良县| 卫辉市| 西峡县| 张家口市| 长治市| 建德市| 通山县| 佛坪县| 通辽市| 视频| 涞源县| 方山县| 荔浦县| 类乌齐县| 舟曲县| 西安市| 邹城市| 龙口市| 筠连县| 华安县| 西乌| 遵义市| 上犹县| 和硕县| 西平县| 锦屏县| 土默特左旗| 木兰县| 五华县| 库车县| 黔东| 曲水县| 惠来县| 景德镇市| 长泰县| 巧家县|