MongoDB驱动种类介绍 1. MongoDB官方驱动:mongo-csharp-driver,下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 2. 第三方驱动samus,这是一款使用使用较多的驱动,更新频率比较快。
1. MongoDB官方驱动:mongo-csharp-driver,下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads
2. 第三方驱动samus,这是一款使用使用较多的驱动,更新频率比较快,samus驱动除了支持一般形式的操作之外,还支持Linq 和Lambda 表达式。下载地址:https://github.com/samus/mongodb-csharp。
两个mongodb驱动对mongodb数据库的操作流程基本相同,只不过在实现方式上有所差异,如samus驱动除了支持一般的形式操作之外,还支持Linq和Lambda表达方式。
解压缩包得到如下两个文件:
MongoDB.Bson.dll :序列化、Json相关
MongoDB.Driver.dll :mongodb驱动
<span style="font-size: 14px;">using MongoDB.Bson;<br/>using MongoDB.Driver;<br/></span>
<span style="font-size: 14px;">string connectionString = " mongodb://localhost " ; //mongodb://[username:password@]hostname[:port][/[database][?options]]<br/>MongoServer server = MongoServer.Create(connectionString);// 连接到一个MongoServer上<br/></span>
<span style="font-size: 14px;">MongoDatabase database = server.GetDatabase("test"); // "test" 是数据库名称<br/></span>
<span style="font-size: 14px;">MongoCollection col = db.GetCollection("Users");//Users集合名<br/></span>
插入数据到数据库
<span style="font-size: 14px;">public void Insert()<br/>{<br/> //创建数据库链接<br/>MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);<br/> //获得数据库test<br/>MongoDatabase db = server.GetDatabase(dbName);<br/> Users users = new Users();<br/> users.Name = "test";<br/> users.Sex = "man";<br/> //获得Users集合,如果数据库中没有,先新建一个<br/>MongoCollection col = db.GetCollection("Users");<br/> //执行插入操作<br/>col.Insert(users);<br/>}<br/></span>
更新数据
<span style="font-size: 14px;">public void Update()<br/>{<br/> //创建数据库链接<br/>MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);<br/> //获得数据库test<br/>MongoDatabase db = server.GetDatabase(dbName);<br/> //获取Users集合<br/>MongoCollection col = db.GetCollection("Users");<br/> //定义获取“Name”值为“test”的查询条件<br/>var query = new QueryDocument { { "Name", "test" } };<br/> //定义更新文档<br/>var update = new UpdateDocument { { "$set", new QueryDocument { { "Sex", "wowen" } } } };<br/> //执行更新操作<br/>col.Update(query, update);<br/>}<br/></span>
删除数据
<span style="font-size: 14px;">public void Delete()<br/>{<br/> //创建数据库链接<br/>MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);<br/> //获得数据库test<br/>MongoDatabase db = server.GetDatabase(dbName);<br/> //获取Users集合<br/>MongoCollection col = db.GetCollection("Users");<br/> //定义获取“Name”值为“test”的查询条件<br/>var query = new QueryDocument { { "Name", "test" } };<br/> //执行删除操作<br/>col.Remove(query);<br/>}<br/></span>
查询数据
<span style="font-size: 14px;">public void Query()<br/>{<br/> //创建数据库链接<br/>MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);<br/> //获得数据库test<br/>MongoDatabase db = server.GetDatabase(dbName);<br/> //获取Users集合<br/>MongoCollection col = db.GetCollection("Users");<br/> //定义获取“Name”值为“test”的查询条件<br/>var query = new QueryDocument { { "Name", "test" } };<br/> //查询全部集合里的数据<br/>var result1 = col.FindAllAs();<br/> //查询指定查询条件的第一条数据,查询条件可缺省。<br/>var result2 = col.FindOneAs();<br/> //查询指定查询条件的全部数据<br/>var result3 = col.FindAs(query);<br/>} <br/></span>
有两种使用集合的方法:使用 BsonDocument 对象模型、 使用自己的实体类。本文主要介绍 使用实体。 如果数据格式很随意,很难或不可能定义成实体类的话,那就使用 BsonDocument 对象模型。由于使用自己的实体类更容易得多,并且确定使用实体, 你的实体类必须有以下要求:具有无参构造函数 , 对于要存储在数据库里的数据,需定义公共的读/写字段或属性。如果实体类将作为根级文档,那它必须包含一个Id字段或属性(通常命名为“Id”,即使有需要你可以重写它)。通常Id的类型为ObjectId。
更多相关教程请访问 MySQL视频教程