设为首页 加入收藏

TOP

C#操作MongoDB数据库方法(一)
2015-11-21 01:50:38 来源: 作者: 【 】 浏览:0
Tags:操作 MongoDB 数据库 方法
本文利用MongoDB官方发布的C#驱动,封闭了对MongoDB数据库的增删改查访问方法。
?
1、引用MongoDB for C# Driver
?
从网上 下载C#访问MongoDB的驱动,得到两个DLL:
?
MongoDB.Driver.dll
MongoDB.Bson.dll
?
将它们引用到项目中。
?
2、编写 数据库访问帮助类
?
编写MongoDB访问帮助类MongoDbHelper:
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using MongoDB.Bson;
  5 using MongoDB.Driver;
  6 using MongoDB.Driver.Builders;
  7 using MongoDbTest.Models;
  8 
  9 namespace MongoDbTest
 10 {
 11     /// 
 12     /// MongoDB帮助类
 13     /// 
 14     internal static class MongoDbHepler
 15     {
 16         /// 
 17         /// 获取数据库实例对象
 18         /// 
 19         /// 数据库连接串
 20         /// 数据库名称
 21         /// 数据库实例对象
 22         private static MongoDatabase GetDatabase(string connectionString, string dbName)
 23         {
 24             var server = MongoServer.Create(connectionString);
 25             return server.GetDatabase(dbName);
 26         }
 27 
 28         #region 新增
 29 
 30         /// 
 31         /// 插入一条记录
 32         /// 
 33         /// 数据类型
 34         /// 数据库连接串
 35         /// 数据名称
 36         /// 集合名称
 37         /// 数据对象
 38         public static void Insert(string connectionString, string dbName, string collectionName, T model) where T : EntityBase
 39         {
 40             if (model == null)
 41             {
 42                 throw new ArgumentNullException("model", "待插入数据不能为空");
 43             }
 44             var db = GetDatabase(connectionString, dbName);
 45             var collection = db.GetCollection(collectionName);
 46             collection.Insert(model);
 47         }
 48 
 49         #endregion
 50 
 51         #region 更新
 52 
 53         /// 
 54         /// 更新数据
 55         /// 
 56         /// 数据库连接串
 57         /// 数据库名称
 58         /// 集合名称
 59         /// 查询条件
 60         /// 更新字段
 61         public static void Update(string connectionString, string dbName, string collectionName, IMongoQuery query, Dictionary dictUpdate)
 62         {
 63             var db = GetDatabase(connectionString, dbName);
 64             var collection = db.GetCollection(collectionName);
 65             var update = new UpdateBuilder();
 66             if (dictUpdate != null && dictUpdate.Count > 0)
 67             {
 68                 foreach (var item in dictUpdate)
 69                 {
 70                     update.Set(item.Key, item.Value);
 71                 }
 72             }
 73             var d = collection.Update(query, update, UpdateFlags.Multi);
 74         }
 75 
 76         #endregion
 77 
 78         #region 查询
 79 
 80         /// 
 81         /// 根据ID获取数据对象
 82         /// 
 83         /// 数据类型
 84         /// 数据库连接串
 85         /// 数据库名称
 86         /// 集合名称
 87         /// ID
 88         /// 数据对象
 89         public static T GetById(string connectionString, string dbName, string collectionName, ObjectId id)
 90             where T : EntityBase
 91         {
 92             var db = GetDatabase(connectionString, dbName);
 93             var collection = db.GetCollection(collectionName);
 94             return collection.FindOneById(id);
 95         }
 96 
 97         /// 
 98         /// 根据查询条件获取一条数据
 99         /// 
100         /// 数据类型
101         /// 数据库连接串
102         /// 数据库名称
103         /// 集合名称
104         /// 查询条件
105         /// 数据对象
106         public static T GetOneByCondition(string connectionString, string dbName, string collectionName, IMongoQuery query)
107             where T : EntityBase
108         {
109             var db = GetDatabase(connectionString, dbName);
110             var collection = db.GetCollection(collectionName);
111             return collection.FindOne(query);
112         }
113 
114         /// 
115         /// 根据查询条件获取多条数据
116         /// 
117         /// 数据类型
118         /// 数据库连接串
119         /// 数据库名称
120         /// 集合名称
121         /// 查询条件
122         /// 数据对象集合
123         public static List GetManyByCondition(string connectionString, string dbName, string collectionName, IMongoQuery query)
124             where T : EntityBase
125         {
126             var db = GetDatabase(connectionString, dbName);
127             var collection = db.GetCollection(collectionName);
128             return collection.Find(query).ToList();
129         }
130 
131         /// 
132         /// 根据集合中的所有数据
133         /// 
1
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇 mongodb数据库服务搭建 下一篇对于JDBCthinclient连接,ORA-280..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: