前言
在开始正文之前,感谢博客园的Nosql爱好者对于MongoCola工具的试用(使用)。特别感谢 呆呆 这位朋友的Bug报告,让我纠正了一个很严重的Bug。同时也感谢以前的多个网友在博客留言中给我的意见,建议,以及BUG的修正方案。这个工具的进步离不开你们的贡献。最新版的MongoCola为1.13.主要改进了一些视觉效果上的东西,毕竟这个工具不是个人的工具了,在保证品质的前提下,也要考虑到美观和易用性了。
如何得到MongoDB
MongoDB是一个开源的项目,你可以从GitHub上获取MongoDB的源代码,当然对于大部分用户来说,我们并不需要源代码,直接下载可执行的文件即可。最新版的MongoDB是2.0.4.
你可以从MongoDB的官方网站下载。 官方网站下载地址:http://www.mongodb.org/downloads
温馨提示:各种平台的版本很多,请选择正确的版本下载。
下载后的文件是一个压缩包,直接解压就可以了。解压后,你会看到若干个 EXE 可执行文件,其中 mongod.exe 是重点文件(Mongo device)启动新的Mongo服务器必须要用到这个。
如何启动一个MongoDB服务器
启动一个MongoDB服务器的实例,有很多方法,这里将一个最简单的方法(注意,不是最合适的方法)。这个方法非常适合我们学习者使用。
首先,请准备好一个目录,用于存放MongoDB的数据库文件。例如 C:\mongodb\master 这样的目录。MongoDB的数据库文件和日志文件等等都会生成在这个目录下面。
确保了目录已经存在后,我们可以在DosCommand里面启动一个MongodB服务器了。(我想大部分在这里的人是知道如何启动DosCommand命令行的)
然后依次输入以下两条命令:(我们假设你的mongod.exe放在C:\runmongo\bin 文件夹里面了)
mongod --port 28018 --dbpath C:\mongodb\master --master --rest --journal
第一条指令是将工作目录切换到Mongo的Bin下面,第二条命令是启动一个Mongodb的服务器。 启动命令的详细细节,暂时不介绍,请大家试试看能不能启动。(这里我选择了28018这个端口作为Mongodb的TCP/IP端口,一般建议使用10000以上的端口)。
一般,我会将这两条命令放在一个扩展名为 .bat 的批处理文件里面,以后只需要执行这个批处理文件就可以了。例如 你可以新建一个名为master.bat的文件,然后将这两句指令保存到这个文件中,以后通过双击master.bat就可以进行服务器的启动了。
使用工具监视操作MongoDB
你可以使用Mongo原生的命令行工具来监视和操作MongoDB,也可以使用各种MongoDB的工具来操作MongoDB。这里我使用自己开发的工具来监视和操作MongoDB。
1.启动MongoCola:如果你是第一次使用MongoCola,先选择界面语言。由于工具是面向全球的,所以使用英语为默认语言。当然,你可以选择 中文 为界面语言,
然后,请设定一下你的Mongo的可执行文件的路径,软件的一些功能需要使用一些原生的可执行文件
例如我的路径是C:\runmongo\bin 当然,你也可以在以后进行设置。不过强烈建议一开始就设置。不然影响部分功能的使用。
2.接下来,我们新建一个数据库连接。
由于第一次使用,所以没有任何登录过的连接。首先,我们新建一个新的连接。
一个最最基本的链接,只需要Host名称和Port就可以了。我将这个链接的名字定为 Master,然后由于是本地的服务器,所以Host就填为localhost,端口是28018.
设定好了以后,可以按下Test来测试一下是否设置正确,或者直接按下 Add 来登录一个新的连接。
OK,登录好了之后,在连接管理面板里面双击这个链接,就可以打开主界面了。(你也可以选中一个链接,然后按下OK按钮)。
【注意:密码将以明文形式放入Config.xml文件中】
界面基本介绍
界面分为左右两个区域,左边的是连接列表(通常1个连接代表一个服务器,但是连接的概念和服务器的概念并不是等价的)。你可以在这个区域里面看到服务器的大致结构,例如数据库和数据集的整体状况。右边是各种数据库对象的详细信息表示区域,这里可能显示一个数据集的记录,或者显示文件系统和用户系统。在初始化的状态下,这里显示当前连接的状态。
这里我们看到服务器下面有一个local的数据库,现在他是我们唯一拥有的数据库。local数据库下面没有 User,没有GFS(文件系统),没有Javascript文档,没有系统和普通的数据集。说到底,什么都没有。。。
由于local是系统数据库,软件认为不能由用户来操作,所以,我们先要新建一个数据库。我们选中服务器的图标,然后从右键菜单中选择 新建数据库(createNewDatabase),输入数据库名称之后,一个新的数据库就建成了。(由于已经知道的Mongodb的Bug,请使用英文作为数据库名称)。作为例子,我新建了一个Cnblogs的数据库。然后选中这个数据库,右键菜单里面有新建数据集的菜单项(Create New Collection)。
这里的数据集名称,也暂时不要使用中文。关于使用中文数据集名称的Bug,我已经报告Mongo官方了,但是现在还没有修正好。Bug票:https://jira.mongodb.org/browse/SERVER-4412
一般用户,直接填写数据集名称就可以了,一些高级选项,请在知道确切含义后选择。特别是Iscapped属性,用这个属性后,数据集里面的文档(数据)可能无法修改。好了,我们新建一个NoSql的数据集。
如果没有问题,左边的数据库一览的Cnblogs下面将会有一个Nosql数据集挂在一般数据集下面。由于使用了索引,系统数据集里面也会有一个System.index数据集。双击一下这个数据集看看。右边的数据视图将会展示数据集内容,当然现在什么都没有。
尝试加入第一个文档
OK,接下来我们加入一条数据到数据集中,Mongo里面将数据记录叫做 文档。按下工具栏的第一个图标,添加一个文档吧。
这里我们使用Json作为描述文档的语言,它看起来像这样
"Name":"MongoDB","Type":"Nosql"
}
注意:一般我们不用(不能输入)_id这个索引字段,这个是Mongo自动维护的字段。这里我们添加两个字段,一个是Name,值是MongoDB,一个是Type,值是Nosql。
插入成功后,你可以看到第一条记录了。由于时间问题,TreeListView还比较粗糙,有时间再改了。。。。
软件为你准备了3种视图来查看数据:树形视图,列表视图,和Json文本视图。
聚合功能
介绍这个功能前,我们现在数据库里面追加一些数据吧。
我们一共有4条数据,2条Nosql的,2条Sql的数据。
数据统计:Count
这个功能很简单,就是看看数据集里面的文档(数据)件数。
从左边的服务器视图中,选中数据集,在右键菜单中选中聚合(aggregation)菜单项里面的Count功能,记录条数就会以弹出框的形式告诉用户。
数据统计:Distinct
启动Distinct的方法和Count一样,在右键菜单中选中聚合(aggregation)菜单项里面的Distinct功能。这个时候,你需要在弹出窗体里面选择你需要做Distinct的字段名称了。
如果我们以Name做Distinct,结果是4件记录,如果我们以Type做Distinct,结果是2件记录。看了下面的图,我想各位都知道这个结果是怎么得出来的了。
数据统计:Group和MapReduce
暂时不做说明。
简单的查询功能
Nosql的查询功能一直是一个软肋,这里我开发了一个简单的查询器。
例如,我想查找所有的Nosql的数据。那么我们可以使用查询功能,你可以在视图的工具栏里面按下那个双筒望远镜的图标。
然后进行如下设置即可。字段是下拉表里面选中的Type,EQ表示“等于”的意思,然后类型是BsonString,需要等于的值是 “Nosql”
执行这个过滤器后数据就只有2条被表示到数据视图中了。(这个时候如果再使用聚合的话,结果将默认建立在这个过滤器的基础上,这个时候做Count,结果是2)
你可以使用工具栏上的 过滤器图标来切换 数据过滤的启停状态。注意:id字段比较特殊,不能屏蔽。
如何得到Mongocola1.13
你可以从Github下载本软件:https://github.com/magicdict/MagicMongoDBTool/downloads
本软件是开源软件,所以没有任何功能限制。
MongoCola 最新版本:1.13 Mongodb 最新版本 2.0.4 C# Driver 最新版本 1.3.1
未完待续
3月31日,MongoDB在上海召开技术者大会,有人去吗?详细情况:http://www.10gen.com/events/mongodb-shanghai