Mongodb-使用C#Drivers实现增删改查
3.1 C# Drivers支持情况
面对现在的学习,我们还是使用 Version2.0版本,因为它支持全部的的.NET , 因为技术是越来越成熟的;
3.2 .NET 平台对 Mongodb版本的支持情况如下 :全部支持
3.3 下载
Mongdb C#驱动 和 确定你已经配置和安装好你的Mongodb,若下载不下来的话,可以 点我下载!
4.1 引用
(1) 打开vs2012及vs2012 版本以上 (.NET FrameWork4.5),新建项目,什么项目都行,能够测试就行,这里 使用控制台应用程序,
(2)引用 所有dll ;
4.2 连接mongdb
在连接之前,保证你 打开了 mongodb 服务,若不记得怎么打开,请访问 :点击学习打开服务
5. 新建MongoDb操作工具类
花了1个小时,写的工具类,测试测试吧!封装好了 mongdb连接 ,增删改查和创建集合<pre name="code" class="csharp">using MongoDB.Bson; using MongoDB.Driver; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MongoDBDemo1 { public class Connection { //创建数据库连接 MongoServerSettings setting = new MongoServerSettings(); MongoServerAddress address =new MongoServerAddress("127.0.0.1", 27017); MongoServer server = null; string dbName=string.Empty; /// <summary> /// 得到连接 /// </summary> public Connection() { setting.Server = address; server = new MongoServer(setting); } /// <summary> /// 构造函数 获得 dbname /// </summary> /// <param name="dbname">数据库名称</param> public Connection(string dbname) { this.dbName = dbname; setting.Server = address; server = new MongoServer(setting); } /// <summary> /// 外部调用得到数据库 /// </summary> /// <param name="dbName"></param> /// <returns></returns> public MongoDatabase getMongoDataBase(string dbName) { return server.GetDatabase(dbName); } /// <summary> /// 重载 得到数据库 /// </summary> /// <returns></returns> public MongoDatabase getMongoDataBase() { return server.GetDatabase(dbName); } /// <summary> /// 创建集合 /// </summary> /// <param name="colName">集合名字</param> /// <returns></returns> public bool createCollection(string colName) { MongoDatabase db = this.getMongoDataBase(); CommandResult result= db.CreateCollection(colName); if (result.Ok) { return true; } else { return false; } } /// <summary> /// 外部调用 /// </summary> /// <param name="colName">集合名称</param> /// <param name="db">数据库对象</param> /// <returns></returns> public MongoCollection<BsonDocument> getMongoColl(string colName,MongoDatabase db){ return db.GetCollection(colName); } /// <summary> /// 内部使用 /// </summary> /// <param name="colName">集合名称</param> /// <returns></returns> public MongoCollection<BsonDocument> getMongoColl(string colName){ return this.getMongoDataBase().GetCollection(colName); } /// <summary> /// 查询操作 /// </summary> /// <param name="colName">集合名词</param> /// <param name="query">条件</param> /// <returns></returns> public MongoCursor<BsonDocument> select(string colName,IMongoQuery query){ MongoCollection<BsonDocument> mcoll=getMongoColl(colName); try { if (query == null) { return mcoll.FindAll(); } else { return mcoll.Find(query); } } finally { this.mongoClose(); } } /// <summary> /// 增加操作 /// </summary> /// <param name="colName">集合名称</param> /// <param name="bson">单条数据</param> /// <returns></returns> public bool insert(string colName,BsonDocument bson) { MongoCollection<BsonDocument> mcoll = getMongoColl(colName); try { mcoll.Insert(bson); return true; } catch { return false; } finally { this.mongoClose(); } } /// <summary> /// 增加多条 /// </summary> /// <param name="colName">集合名称</param> /// <param name="bsonlist">数据集合</param> /// <returns></returns> public bool insert(string colName, List<BsonDocument> bsonlist) { MongoCollection<BsonDocument> mcoll = getMongoColl(colName); try { foreach (BsonDocument bson in bsonlist) { mcoll.Insert(bson); } return true; } catch { return false; } finally { this.mongoClose(); } } /// <summary> /// 修改操作 /// </summary> /// <param name="colName">集合名称</param> /// <param name="query">条件</param> /// <param name="upd">修改的内容</param> /// <returns></returns> public bool update(string colName, IMongoQuery query,IMongoUpdate upd) { MongoCollection<BsonDocument> mcoll = getMongoColl(colName); try { mcoll.Update(query, upd); return true; } catch { return false; } finally { this.mongoClose(); } } /// <summary> /// 删除操作 /// </summary> /// <param name="cloName">集合名称</param> /// <param name="query">条件</param> /// <param name="flag">是否为0 ,为0 则删除 满足条件的全部信息</param> /// <returns>false/true</returns> public bool delete(string cloName, IMongoQuery query,int flag) { MongoCollection<BsonDocument> mcol = this.getMongoColl(cloName); try { if (flag == 0) { mcol.Remove(query, RemoveFlags.None); } else { mcol.Remove(query, RemoveFlags.Single); } return true; } catch { return false; } finally { this.mongoClose(); } } /// <summary> /// 关闭连接 /// </summary> public void mongoClose(){ server.Disconnect(); } } }
6.1 了解
如果你看前面的在命令行下操作mongodb的话,就开始6.3吧!6.2 建立连接
实例化 连接类,声明数据库名,和集合名!string dbname = "student"; string colName = "yuan"; Connection conn = new Connection(dbname);
6.3 创建集合
调用创建方法bool type= conn.createCollection(colName); if (type) { Console.WriteLine("创建成功!"); } else { Console.WriteLine("创建失败!"); } Console.ReadKey();
6.4 插入单条信息
BsonDocument bson = new BsonDocument("name","csdn"); bool type= conn.insert(colName, bson); if (type) { Console.WriteLine("增加数据成功!"); } else { Console.WriteLine("增加数据成功失败!"); }
6.5 插入多条信息
Dictionary<string,string> dic=new Dictionary<string,string>(); dic.Add("name","ming"); dic.Add("age","23"); dic.Add("collage","hpu"); dic.Add("sno","31120907"); Dictionary<string, string> dic1 = new Dictionary<string, string>(); dic1.Add("name", "zhuo"); dic1.Add("age", "10"); dic1.Add("collage", "hpu"); dic1.Add("sno", "31120908"); List<BsonDocument> list = new List<BsonDocument>() { new BsonDocument(dic), new BsonDocument(dic1) }; bool type=conn.insert(colName, list); if (type) { Console.WriteLine("增加数据成功!"); } else { Console.WriteLine("增加数据成功失败!"); } Console.ReadKey();
6.6 简单查询
MongoCursor<BsonDocument> cursor = conn.select(colName, null); foreach (BsonDocument bson in cursor) { Console.WriteLine(bson.ToString()); } Console.ReadKey();
结果如下:
6.7 条件查询
//条件查询 QueryDocument query = new QueryDocument("collage", "hpu"); MongoCursor<BsonDocument> cursor = conn.select(colName, query); foreach (BsonDocument bson in cursor) { Console.WriteLine(bson.ToString()); } Console.ReadKey();
结果如下:
6.8 修改操作
QueryDocument query = new QueryDocument("name", "zhuo"); Dictionary<string, string> dic1 = new Dictionary<string, string>(); dic1.Add("name", "zhuo"); dic1.Add("age", "23"); dic1.Add("collage", "hpu"); dic1.Add("sno", "31120908"); UpdateDocument upd = new UpdateDocument(dic1); bool type = conn.update(colName, query, upd); if (type) { Console.WriteLine("修改数据成功!"); } else { Console.WriteLine("修改数据失败!"); } //查看修改信息 QueryDocument query1 = new QueryDocument("name", "zhuo"); MongoCursor<BsonDocument> cursor = conn.select(colName, query1); foreach (BsonDocument bson in cursor) { Console.WriteLine(bson.ToString()); } Console.ReadKey();
结果如下:
6.9 删除操作
//先查询下全部 Console.WriteLine("我是全部"); MongoCursor<BsonDocument> cursor = conn.select(colName, null); foreach (BsonDocument bson in cursor) { Console.WriteLine(bson.ToString()); } //删除age等于23的 QueryDocument query = new QueryDocument("age","23"); //第三个参数 为0时删除满足条件的所有,为其他数字是,仅删除1条 bool type=conn.delete(colName, query, 1); Console.WriteLine("我是删除后的!"); MongoCursor<BsonDocument> cursor1 = conn.select(colName, null); foreach (BsonDocument bson in cursor1) { Console.WriteLine(bson.ToString()); }
效果图如下:
下篇 将学习 JAVA Driver的使用!
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。