g87616758 发表于 2015-7-7 11:02:49

在c#中使用mongo-csharp-driver操作mongodb

  1)下载安装   
下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads   
编译之后得到两个dll   
MongoDB.Driver.dll:顾名思义,驱动程序   
MongoDB.Bson.dll:序列化、Json相关   
引用这两个dll。   
2)连接数据库:   
在连接数据库之前请先确认您的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);
  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);   
    //获得数据库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);   
}
  4)更新数据   
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", "wowen" } } } };   
    //执行更新操作   
col.Update(query, update);   
}
  5)删除数据   
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);   
}
  6)查询数据   
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();   
    //查询指定查询条件的第一条数据,查询条件可缺省。   
var result2 = col.FindOneAs();   
    //查询指定查询条件的全部数据   
var result3 = col.FindAs(query);   
}
页: [1]
查看完整版本: 在c#中使用mongo-csharp-driver操作mongodb