Maison  >  Article  >  base de données  >  MongoDB增删查改

MongoDB增删查改

PHPz
PHPzoriginal
2016-06-07 15:54:121103parcourir

MongoDB驱动种类介绍 1. MongoDB官方驱动:mongo-csharp-driver,下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 2. 第三方驱动samus,这是一款使用使用较多的驱动,更新频率比较快。

MongoDB驱动种类介绍

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官方驱动操作数据库

解压缩包得到如下两个文件:
MongoDB.Bson.dll :序列化、Json相关

MongoDB.Driver.dll :mongodb驱动

添加引用,将上面两个DLL引入到项目里面

向代码中引入命名空间

<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/>    //定义获取&ldquo;Name&rdquo;值为&ldquo;test&rdquo;的查询条件<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/>    //定义获取&ldquo;Name&rdquo;值为&ldquo;test&rdquo;的查询条件<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/>    //定义获取&ldquo;Name&rdquo;值为&ldquo;test&rdquo;的查询条件<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视频教程

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn