使用mongoDB c#官方驱动操作mongoDB

因为需要用到操作mongo数据库的驱动,在网上找了,虽然有samus驱动、和有关LinqToMongo的等等驱动,但是还是选择了官方驱动,大概是因为我相信它稳定吧!糗大了(好吧,借口)

官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads

引用两个dll文件: MongoDB.Driver.dll:这就是官方驱动程序了

MongoDB.Bson.dll:Json、序列化相关

虽然公司有dev.mongo(根据官方驱动写的)这样的封装驱动,更加简单易用,但是更接近基础一点,不是吗。下面就开始我的学习之路。

首先,因为有了之前mongo的基础,在本地已经将MongoDB服务打开了,现在直接连接数据库。

//数据库连接字符串 const string strconn = "mongodb://127.0.0.1:27017"; //数据库名称 const string dbName = "testdb";//创建数据库链接 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn); //获得数据库test MongoDatabase db = server.GetDatabase(dbName);

好了,接下来添加数据,我们要添加一条User“记录”到 Users集合中。

在MongoDB中没有表的概念,创建的是集合,所以可以直接插入数据,不需先建表。

定义要插入的数据的模型Users.cs

 public class Users { public ObjectId _id;// 对应 MongoDB.Bson.ObjectId     public string Name { get; set; } public string Sex { set; get; } }

 

添加数据

public void Insert(){ //创建数据库链接 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn); //获得数据库test MongoDatabase db = server.GetDatabase(dbName); Users users = new Users(); users.Name = "test"; users.Sex = "man"; //获得Users集合,如果数据库中没有,先新建一个 MongoCollection col = db.GetCollection("Users"); //执行插入操作 col.Insert<Users>(users);}

 

更新数据

 public void Update(){ //创建数据库链接 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn); //获得数据库test MongoDatabase db = server.GetDatabase(dbName); //获取Users集合 MongoCollection col = db.GetCollection("Users"); //定义获取“Name”值为“test”的查询条件 var query = new QueryDocument { { "Name", "test" } }; //定义更新文档 var update = new UpdateDocument { { "$set", new QueryDocument { { "Sex", "women" } } } }; //执行更新操作 col.Update(query, update);}

删除数据

public void Delete(){ //创建数据库链接 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn); //获得数据库test MongoDatabase db = server.GetDatabase(dbName); //获取Users集合 MongoCollection col = db.GetCollection("Users"); //定义获取“Name”值为“test”的查询条件 var query = new QueryDocument { { "Name", "test" } }; //执行删除操作 col.Remove(query);}

查询数据

public void Query(){ //创建数据库链接 MongoServer server = MongoDB.Driver.MongoServer.Create(strconn); //获得数据库test MongoDatabase db = server.GetDatabase(dbName); //获取Users集合 MongoCollection col = db.GetCollection("Users"); //定义获取“Name”值为“test”的查询条件 var query = new QueryDocument { { "Name", "test" } }; //查询全部集合里的数据 var result1 = col.FindAllAs<Users>(); //查询指定查询条件的第一条数据,查询条件可缺省。 var result2 = col.FindOneAs<Users>(); //查询指定查询条件的全部数据 var result3 = col.FindAs<Users>(query);}

这样,运用mongoDB的C#官方驱动进行的基本操作就完成了。