MongoCola使用教程 1 - MongoDB的基本操作和聚合功能

前言

     在开始正文之前,感谢博客园的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 文件夹里面了)

 

 
     cd 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就可以进行服务器的启动了。

    

 

 

    

正常启动的Dos界面

 

 使用工具监视操作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还比较粗糙,有时间再改了。。。。

    (不知道有没有朋友 对于 绘制自定义TreeView 有经验吗,能不能帮忙绘制一下Node的连线和前面的加减号,我画得不是很好)
     这里_id是系统自动生成的主键。(一般情况下,这个id不会重复,不过,通过一些方法,是可以让这个id重复的。。。。O(∩_∩)O~)

     软件为你准备了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

posted @ 2012-03-22 11:00  灰毛毛  阅读(13526)  评论(11编辑  收藏  举报