mogo使用说明书gdb是否有事务

&&&& & 在开发之前,选择MongoDb驱动是件很重要的事情。如果选择不好,在后期的开发的是件很费力的事情,因为我就遇到这样的问题。MongoDb驱动有几种比较流行驱动,官方驱动和samus是两种使用比较多的。&&&&&&
&&&&&& 好了,接着说今天的内容了。&&&&&& 首先从MongoDb的官方网站上下载CSharp驱动()。我使用的是CSharpDriver-1.1.0.4184,里面还包含一个CSharpDriverDocs.chm的文档。&&&&&&& MongoDb插入原理:使用驱动程序进行插入的时候,会将数据转换成BSON格式。数据库会解析BSON,并检验是否含有“_id”键,因为“_id”键在插入到数据库时MongoDb会自动生成。而且每次插入文档不能超过4M。这个应该是和MongoDb本身有关。但是MongoDb1.8版本的支持16M,为什么是这个样子我到没怎么研究。这个想留给有心人帮忙解决下了。
&&&&& 插入的Shell操作有Insert和Save两种语法,先看下面的Shell
& var time = new Date(" 21:50:00") //定义一个时间对象& var i = {"time":time,"userid":10001,"sessionid":"00","ip":"192.168.0.1","title":"Login","url":"Login.aspx"}& //定义一个文档对象& i&& //查看 i 文档{&&&&&&& "time" : ISODate("T13:50:00Z"),&&&&&&& "userid" : 10001,&&&&&&& "sessionid" : "00",&&&&&&& "ip" : "192.168.0.1",&&&&&&& "title" : "Login",&&&&&&& "url" : "Login.aspx"}& use testDb& show collections& //查看当前集合,把i文档插入到login集合中mycmyc1myc2system.indexes& db.login.insert(i)& db.login.findOne(){&&&&&&& "_id" : ObjectId("4e5b99e62690d28cadd0f58d"), //MongoDb会为每个插入的对象自动生成一个"_id"的值,你可以在插入的时候自己指定这个值,如下面&&&&&&& "time" : ISODate("T13:50:00Z"),&&&&&&& "userid" : 10001,&&&&&&& "sessionid" : "00",&&&&&&& "ip" : "192.168.0.1",&&&&&&& "title" : "Login",&&&&&&& "url" : "Login.aspx"}& i = {"_id":"newid_100001","time":time,"userid":10001,"sessionid":"00","ip":"192.168.0.1","title":"Login","url":"Login.aspx"}{&&&&&&& "_id" : "newid_100001",&&&&&&& "time" : ISODate("T13:50:00Z"),&&&&&&& "userid" : 10001,&&&&&&& "sessionid" : "00",&&&&&&& "ip" : "192.168.0.1",&&&&&&& "title" : "Login",&&&&&&& "url" : "Login.aspx"}& db.login.save(i) //这里用save插入文档到数据库& db.login.find()& //查询结果两条文档,第二条文档"_id"是自定义的值{ "_id" : ObjectId("4e5b99e62690d28cadd0f58d"), "time" : ISODate("T13:50:00Z"), "userid" : 10001, "sessionid" : "00","ip" : "192.168.0.1", "title" : "Login", "url" : "Login.aspx" }{ "_id" : "newid_100001", "time" : ISODate("T13:50:00Z"), "userid" : 10001, "sessionid" : "00", "ip" : "192.168.0.1","title" : "Login", "url" : "Login.aspx" }
注意:1:Insert和Save的区别是:如果插入的集合的“_id”值,在集合中已经存在,用Insert执行插入操作回报异常,已经存在"_id"的键。用Save如果系统中没有相同的"_id"就执行插入操作,有的话就执行覆盖掉原来的值。相当于修改操作。我这里就不做演示了。
下面说下用C#驱动 添加文档。
2:在新建一个集合或者一个数据库时,MongoDb不会在马上生成。而是在你添加了第一个数据后才会有显示。这个特性很多的数据库都用,比如说SQLite。
下面说下用 C#驱动 添加文档
C#驱动 添加文档
&&1&#region&Version&Info&&2&/*&========================================================================&&&3&&&&&*&【说明描述】&&&4&&&&&*&&&&5&&&&&*&作者:yoolo&&&&&&&&时间:&21:15:38&&&6&&&&&*&文件名:NoSpiderAuto.LoginDemo&&7&&&&&*&版本:V1.0.1&&&8&&&&&*&&&9&&&&&*&修改者:&&&&&&&&&&&时间:&&&&&&&&&&&&&&&&10&&&&&*&修改说明:&&11&&&&&*&========================================================================&&12&&&*/&13&#endregion&14&&15&namespace&NoSpiderAuto&16&{&17&&&&&using&S&18&&&&&using&System.Collections.G&19&&&&&using&System.L&20&&&&&using&System.T&21&&&&&using&MongoDB.D&22&&&&&using&MongoDB.B&23&&24&&&&&internal&class&LoginDemo&25&&&&&{&26&&&&&&&&&MongoDatabase&&27&&&&&&&&&MongoCollection&&28&&&&&&&&&public&LoginDemo()&29&&&&&&&&&{&30&&&&&&&&&&&&&MongoServerSettings&set&=&new&MongoServerSettings()&31&&&&&&&&&&&&&{&32&&&&&&&&&&&&&&&&&Server&=&new&MongoServerAddress("<span style="color: #7.0.0.1")&33&&&&&&&&&&&&&};&34&&&&&&&&&&&&&MongoServer&server&=&new&MongoServer(set);&35&&&&&&&&&&&&&db&=&server.GetDatabase("testDb");&36&&&&&&&&&&&&&coll&=&db.GetCollection("login");&37&&&&&&&&&}&38&&39&&&&&&&&&///&&summary&&40&&&&&&&&&///&单个对象插入&41&&&&&&&&&///&&/summary&&42&&&&&&&&&public&void&InsertLogin()&43&&&&&&&&&{&44&&&&&&&&&&&&&var&Time&=&DateTime.Now.ToUniversalTime();&45&&46&&&&&&&&&&&&&//实例一&添加匿名对象&47&&&&&&&&&&&&&var&login&=&new&{&_id&=&"newid_100002",&time&=&Time,&userid&=&<span style="color: #002,&sessionid&=&"<span style="color: #",&ip&=&"<span style="color: #2.168.0.2",&title&=&"注册",&url&=&"Register.aspx"&};&48&&&&&&&&&&&&&coll.Insert(login);//插入成功&49&&50&&&&&&&&&&&&&//添加一个BsonDocument对象&51&&&&&&&&&&&&&BsonDocument&doc&=&new&BsonDocument();&52&&&&&&&&&&&&&doc.Add("_id",&BsonValue.Create("newid_100003"));&53&&&&&&&&&&&&&doc.Add("time",&BsonValue.Create(Time));&54&&&&&&&&&&&&&doc.Add("userid",&BsonValue.Create(<span style="color: #003));&55&&&&&&&&&&&&&doc.Add("sessionid",&BsonValue.Create("<span style="color: #"));&56&&&&&&&&&&&&&doc.Add("ip",&BsonValue.Create("<span style="color: #2.168.0.3"));&57&&&&&&&&&&&&&doc.Add("title",&BsonValue.Create("注册"));&58&&&&&&&&&&&&&doc.Add("url",&BsonValue.Create("Register.aspx"));&59&&&&&&&&&&&&&coll.Insert(doc);//插入成功&60&&61&&&&&&&&&&&&&//添加一个对象&62&&&&&&&&&&&&&Login&man&=&new&Login();&63&&&&&&&&&&&&&man._id&=&"newid_100004";&64&&&&&&&&&&&&&man.time&=&T&65&&&&&&&&&&&&&man.userid&=&<span style="color: #004;&66&&&&&&&&&&&&&man.sessionid&=&"<span style="color: #";&67&&&&&&&&&&&&&man.ip&=&"<span style="color: #2.168.0.4";&68&&&&&&&&&&&&&man.title&=&"注册";&69&&&&&&&&&&&&&man.url&=&"Register.aspx";&70&&&&&&&&&&&&&coll.Insert(man);//插入成功&71&&72&&&&&&&&&}&73&&&&&&&&&///&&summary&&74&&&&&&&&&///&批量插入&75&&&&&&&&&///&&/summary&&76&&&&&&&&&public&void&InsertBatchLogin()&77&&&&&&&&&{&78&&&&&&&&&&&&&var&Time&=&DateTime.Now.ToUniversalTime();&79&&&&&&&&&&&&&List&Login&&logins&=&new&List&Login&();&80&&81&&&&&&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&<span style="color: #0;&i++)&82&&&&&&&&&&&&&{&83&&&&&&&&&&&&&&&&&Login&man&=&new&Login();&84&&&&&&&&&&&&&&&&&man._id&=&"newid_100001"&+&i.ToString();//_id在批量插入的时候不能重复,如果有一个重复全部集合无法插入到集合&85&&&&&&&&&&&&&&&&&man.time&=&T&86&&&&&&&&&&&&&&&&&man.userid&=&<span style="color: #004&+&i;&87&&&&&&&&&&&&&&&&&man.sessionid&=&"<span style="color: #";&88&&&&&&&&&&&&&&&&&man.ip&=&"<span style="color: #2.168.0.4";&89&&&&&&&&&&&&&&&&&man.title&=&"注册";&90&&&&&&&&&&&&&&&&&man.url&=&"Register.aspx";&91&&&&&&&&&&&&&&&&&logins.Add(man);&92&&&&&&&&&&&&&}&93&&&&&&&&&&&&&coll.InsertBatch(typeof(Login),&logins);&//插入成功&94&&&&&&&&&}&95&&&&&}&96&&97&&&&&public&class&Login&98&&&&&{&99&&&&&&&&&public&string&_id&{&get;&set;&}<span style="color: #0&&&&&&&&&public&DateTime&time&{&get;&set;&}<span style="color: #1&&&&&&&&&public&int&userid&{&get;&set;&}<span style="color: #2&&&&&&&&&public&string&sessionid&{&get;&set;&}<span style="color: #3&&&&&&&&&public&string&ip&{&get;&set;&}<span style="color: #4&&&&&&&&&public&string&title&{&get;&set;&}<span style="color: #5&&&&&&&&&public&string&url&{&get;&set;&}<span style="color: #6&&&&&}<span style="color: #7&}
&&&&&& 如果要插入多个文档,使用批量插入会快一些。一次批量插入只是单个Tcp请求,也就是避免了多个请求带来的开销!
&&&&&& 如果要看更多,请访问我之前的&&&&
&&& & 作者:
&&&& &出处:
&&&&& 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
阅读(...) 评论()

我要回帖

更多关于 TiMamogo的歌曲 的文章

 

随机推荐