多语言展示
当前在线:1085今日阅读:27今日分享:41

MongoDB使用经验

经测试,MongoDB执行速度远远高于SQLserver 查询速度可达 2-200倍!但mongoDB硬盘占用量会高于SQLSERVER 100倍左右.拷贝数据直接拷贝文件即可。。下面说说个人MongoDB的使用经验,
工具/原料

MongoDB数据库软件

方法/步骤
1

数据库操作1、数据库连接stringstrconn = 'mongodb://localhost:27017';MongoServer server = MongoDB.Driver.MongoServer.Create(strconn); 2、连接数据库,mydb为数据库名称,跟sql一样可以有多个数据库vardb = server.GetDatabase('mydb'); 3、打开数据表vardt = db.GetCollection('taskdata'); 4、插入数据taskdatatask = newtaskdata();    task.CompanyID= 1;    task.CreateUserID= 1;   task.ExcuteCount = 1;    task.PriorityLevel = 1;   task.TaskStatus = true;   task.TaskTime = DateTime.Now;   task.TaskTypeID = 1;   task.TaskTypeName = '下载黑名单';   task.TermName = '设备4';   task.TermSN = '004';dt.Insert(task); 5、查询数据varq = MongoDB.Driver.Builders.Query.EQ('TermSN', '002');taskdata t = dt.FindOneAs(q); 6、更新数据varq = MongoDB.Driver.Builders.Query.EQ('TermSN', '001');taskdatat = dt.FindOneAs(q);   t.TaskTime = DateTime.Now;   t.CompanyID = 3;dt.Save(t); 7、删除数据varq = MongoDB.Driver.Builders.Query.EQ('TermSN', '001');dt.Remove(q)

2

查询函数说明Query.All('name',newBsonValue[] { '', '', '' });//通过多个元素来匹配数组Query.And(Query.EQ('name', 'a'), Query.EQ('title','t'));//同时满足多个条件Query.EQ('name','a');//等于Query.Exists('type');//判断键值是否存在Query.GT('value',2);//大于>Query.GTE('value',3);//大于等于>=Query.In('name',newBsonValue[] { '', '', '' });//包括指定的所有值,可以指定不同类型的条件和值Query.LT('value',9);//小于

注意事项
1

1、  安装请参考:http://www.cnblogs.com/mecity/archive/2011/06/11/2078527.html

2

1、数据库连接成功后不需要写server.Connect()函数,它会自己连接;

3

1、千万不要写server.Disconnect()语句,否则它会把所有正在打开的连接全部关闭;

4

时区问题,mongodb默认会把时间类型转换为0时区,如果需要输出为本地时区,需在实体属性上加一个Attribute,例如:[MongoDB.Bson.Serialization.Attributes.BsonDateTimeOptions(Kind= DateTimeKind.Local)]public DateTime CreateTime { get; set; }

推荐信息