博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  NoSQL

摘要:http://wenku.baidu.com/view/02f4d42c647d27284b735181.html 阅读全文

posted @ 2012-12-29 17:18 75077027 阅读(1116) 评论(0) 推荐(1) 编辑

摘要:MongoDB条件查询的基本语法。 1 Query.All("name", "a", "b");//通过多个元素来匹配数组 2 3 Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件 4 5 Query.EQ("name", "a");//等于 6 7 Query.Exists("type", true);//判断 阅读全文

posted @ 2012-12-26 21:34 75077027 阅读(2090) 评论(0) 推荐(0) 编辑

摘要:作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者,因为提供了丰富的linq操作,相当方便。官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads。下载后,还提供了一个酷似msdn的帮助文档。samus驱动:https://github.com/samus/mongodb-csharp/downloads。下面就具体看看samus驱动,https://github.com/samus/mongodb-csharp/blob/master/examples 阅读全文

posted @ 2012-12-26 21:33 75077027 阅读(961) 评论(0) 推荐(1) 编辑

摘要:下面演示下C#操作MongoDB驱动的简单的增删改查代码运用到的MongoDB支持的C#驱动,当前版本为1.6.0下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads1,连接数据库 /// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://127.0.0.1:27017"; /// <summary> /// 指定的数据库 //... 阅读全文

posted @ 2012-12-26 21:33 75077027 阅读(1524) 评论(0) 推荐(0) 编辑

摘要:在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对。一:分片 mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案。下面我对这张图解释一下: 人脸: 代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。 mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合.... 好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”... 阅读全文

posted @ 2012-12-26 21:31 75077027 阅读(709) 评论(0) 推荐(1) 编辑

摘要:这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面:1. 安装部署2. 状态监控3. 安全认证4. 备份和恢复,下面我们就一点一点的讲解。一:安装部署 我之前的文章都是采用console程序来承载,不过在生产环境中这并不是最佳实践,谁也不愿意在机器重启后满地找牙似找mongodb,在mongodb里面提供了一个叫做“服务寄宿”的模式,我想如果大家对wcf比较熟悉的话很容易听懂。好了,我们实践一下,这里我开一下D盘里面的mongodb。这里要注意的有两点: <1> logpath: 当我们使用服务寄宿的时候,用眼睛都能想明白肯定不会用conso 阅读全文

posted @ 2012-12-26 21:31 75077027 阅读(392) 评论(0) 推荐(0) 编辑

摘要:从这一篇开始我们主要讨论mongodb的部署技术。 我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署,如果碰到数据库宕机或者被毁灭性破坏那是多么的糟糕。一:主从复制1: 首先看看模型图2: 从上面的图形中我们可以分析出这种架构有如下的好处: <1> 数据备份。 <2> 数据恢复。 <3> 读写分离。3:下面我们就一一实践 实际应用中我们肯定是多服务器部署,限于自己懒的装虚拟机,就在一台机器上实践了。第一步:我们把mongodb文件夹放在D盘和E盘,模拟放在多服务器上。第二步 阅读全文

posted @ 2012-12-26 21:30 75077027 阅读(777) 评论(0) 推荐(0) 编辑

摘要:好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵。 从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中就包括我们今天所说的“索引查找”,如果大家对sqlserver比较了解的话,相信索引查找能给我们带来什么样的性能提升吧。 我们首先插入10w数据,上图说话:一:性能分析函数(explain)好了,数据已经插入成功,既然我们要做分析,肯定要有分析的工具,幸好mongodb中给我们提供了一个关键字叫. 阅读全文

posted @ 2012-12-26 21:29 75077027 阅读(705) 评论(0) 推荐(0) 编辑

摘要:今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标。一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce。<1> count count是最简单,最容易,也是最常用的聚合工具,它的使用跟我们C#里面的count使用简直一模一样。<2> distinct 这个操作相信大家也是非常熟悉的,指定了谁,谁就不能重复,直接上图。<3> group 在mongodb里面做group操作有点小复杂,不过大家对sql server里面的group比较熟悉的话还是一眼能看的明白的,其实gro 阅读全文

posted @ 2012-12-26 21:28 75077027 阅读(943) 评论(0) 推荐(0) 编辑

摘要:一: Insert操作 上一篇也说过,文档是采用“K-V”格式存储的,如果大家对JSON比较熟悉的话,我相信学mongodb是手到擒来,我们知道JSON里面Value可能是“字符串”,可能是“数组”,又有可能是内嵌的一个JSON对象,相同的方式也适合于BSON。 常见的插入操作也就两种形式存在:“单条插入”和“批量插入”。 ① 单条插入 先前也说了,mongo命令打开的是一个javascript shell。所以js的语法在这里面都行得通,看起来是不是很牛X。 ② 批量插入 这玩意跟“单条插入”的差异相信大家应该知道,由于mongodb中没有提供给shell的“批量... 阅读全文

posted @ 2012-12-26 21:24 75077027 阅读(1546) 评论(0) 推荐(0) 编辑

摘要:好了,有了前面的准备工作,我们可以开始在C#中使用MongoDB了。不过,由于本示例项目的代码也不少,因此本文将只展示与MongoDB交互的相关代码,更完整的代码请自行查阅示例项目。接下来,本文演示通过C#完成【客户资料】的一些基本的数据操作,还是先来定义一个客户资料的类型吧。public sealed class Customer{ [MongoId] public string CustomerID { get; set; } public string CustomerName { get; set; } public string ContactName { g... 阅读全文

posted @ 2012-12-26 21:04 75077027 阅读(15934) 评论(1) 推荐(2) 编辑

摘要:下载地址: https://github.com/samus/mongodb-csharp我下载到的压缩包是:samus-mongodb-csharp-0.90.0.1-93-g6397a0f.zip 。这个压缩包本身也包含了一个Sample,有兴趣的可以看看它。我们在C#访问MongoDB所需的驱动就是项目MongoDB了。编译这个项目就能得到了,文件名:MongoDB.dll 阅读全文

posted @ 2012-12-26 21:03 75077027 阅读(2780) 评论(0) 推荐(1) 编辑

摘要:MongoDBMysql查询全部movies.find(new Document())SELECT * FROM movies条件查询movies.Find(new Document { { "title", "Hello Esr" } });SELECT * FROM movies WHERE title= 'foobar'查询数量movies.Find(new Document { { "title", "测试2" } }).Documents.Count();SELECT COUNT(*) F 阅读全文

posted @ 2012-12-26 20:56 75077027 阅读(1188) 评论(0) 推荐(1) 编辑

摘要:查询所有数据库列表CODE:> show dbs如果想查看当前连接在哪个数据库下面,可以直接输入dbCODE:> dbAdmin想切换到test数据库下面CODE:> use testswitched to db test> dbTest想查看test下有哪些表或者叫collection,可以输入CODE:> show collectionssystem.indexesuser想知道mongodb支持哪些命令,可以直接输入helpCODE:> helpHELP show dbs show database names show collections sho 阅读全文

posted @ 2012-12-26 20:48 75077027 阅读(820) 评论(0) 推荐(1) 编辑

摘要:MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。 特点: 高性能、易部署、易使用,存储数据非常方便。主要功能特性有:面向集合存储,易存储对象类型的数据。模式自由。支持动态查询。支持完全索引,包含内部对象。支持查询。支持复制和故障恢复。使用高效的二进制数据存储,包括大型对象(如视频等)。自动处理碎片,以支持云计算层次的扩展性支持Python,PHP,Rub.. 阅读全文

posted @ 2012-12-26 20:29 75077027 阅读(770) 评论(0) 推荐(0) 编辑

摘要:NoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用,这场运动开始于2009年初,通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。 阅读全文

posted @ 2012-12-26 20:28 75077027 阅读(564) 评论(0) 推荐(0) 编辑