MongoDB的本质及怎么进行安装配置( 四 )


八,在C#中使用官方驱动操作MongoDB
8.1)下载安装
想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动 。C#版的驱动有很多种,如官方提供的,samus 。实现思路大都类似 。这里我们先用官方提供的mongo-csharp-driver ,当前版本为1.4.1
下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads
编译之后得到两个dll
MongoDB.Driver.dll:顾名思义,驱动程序
MongoDB.Bson.dll:序列化、Json相关
然后在我们的程序中引用这两个dll 。
下面的部分简单演示了怎样使用C#对MongoDB进行增删改查操作 。
8.2)连接数据库:
在连接数据库之前请先确认您的MongoDB已经开启了 。
//数据库连接字符串
const string strconn = mongodb://127.0.0.1:27017
//数据库名称
const string dbName = cnblogs
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库cnblogs
MongoDatabase db = server.GetDatabase(dbName);
8.3)插入数据:
好了数据打开了,现在得添加数据了,我们要添加一条User“记录”到 Users集合中 。
在MongoDB中没有表的概念,所以在插入数据之前不需要创建表 。
但我们得定义好要插入的数据的模型Users
Users.cs:
public class Users
{
public ObjectId _id;//BsonType.ObjectId 这个对应了 MongoDB.Bson.ObjectId
public string Name { get; set; }
public string Sex { set; get; }
}
_id 属性必须要有,否则在更新数据时会报错:“Element _id does not match any field or property of class” 。
好,现在看看添加数据的代码怎么写:
public void Insert()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库cnblogs
MongoDatabase db = server.GetDatabase(dbName);
Users users = new Users();
users.Name = xumingxiang
users.Sex = man
//获得Users集合,如果数据库中没有,先新建一个
MongoCollection col = db.GetCollection( Users
//执行插入操作
col.Insert Users (users);
}
8.4)更新数据
public void Update()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库cnblogs
MongoDatabase db = server.GetDatabase(dbName);
//获取Users集合
MongoCollection col = db.GetCollection( Users
//定义获取“Name”值为“xumingxiang”的查询条件
var query = new QueryDocument { { Name , xumingxiang } };
//定义更新文档
var update = new UpdateDocument { { $set , new QueryDocument { { Sex , wowen } } } };
//执行更新操作
col.Update(query, update);
}
8.5)删除数据
public void Delete()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库cnblogs
MongoDatabase db = server.GetDatabase(dbName);
//获取Users集合
MongoCollection col = db.GetCollection( Users
//定义获取“Name”值为“xumingxiang”的查询条件
var query = new QueryDocument { { Name , xumingxiang } };
//执行删除操作
col.Remove(query);
}
8.6)查询数据
public void Query()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库cnblogs
MongoDatabase db = server.GetDatabase(dbName);
//获取Users集合
MongoCollection col = db.GetCollection( Users
//定义获取“Name”值为“xumingxiang”的查询条件
var query = new QueryDocument { { Name , xumingxiang } };
//查询全部集合里的数据
var result1 = col.FindAllAs Users

推荐阅读