4免费,开源的管理GUI的MongoDB的

123. 第二页
第2页共3页

phpMoAdmin是不会赢得任何视觉设计奖。的可视元素的排列,以及控件的标签,最初混淆。例如,“更改数据库”控制不会改变任何东西 - 它选择当前数据库。导航是不一致的,太。这是经常不清楚,你必须按下的按钮或链接返回到上一画面。有时,唯一的治疗方法是返回到最顶层,并深入回落到你一直。

和本文介绍的大多数其他GUI管理工具一样,phpMoAdmin没有提供重要的用户指南。你能找到的几乎所有文档都在该产品的单页网站上。您需要研究phpModAdmin的不同部分是如何行为的——比如搜索和查询的意外同时效果。

灵活和可扩展

RockMongo是用PHP编写的基于浏览器的管理应用程序。它至少需要PHP 5执行。除此之外,它的唯一的其他依赖关系是php_mongo驱动程序(其详细的信息可以被发现在php.net)。

RockMongo不是一个单独的PHP文件;它解压缩到包含JavaScript文件、主题和其他应用程序组件的目录树中。不过,安装很简单。如果您知道Web服务器的主目录,那么只需在根目录下创建一个子目录并在那里解压缩RockMongo归档文件。

您可以配置RockMongo使用MongoDB本身提供的身份验证,或者在应用程序的config.php文件中使用硬编码的管理员名/密码对。(MongoDB身份验证在默认情况下是禁用的,它将用户凭证存储在数据库中的一个特殊的“系统”集合中。这个集合中的每个文档都将用户名映射到用户角色。)在任何情况下,您都需要修改config.php来设置参数,比如GUI的主题、IP地址和MongoDB服务器的端口。

启动浏览器并指向RockMongo的网页;您将看到它以熟悉的导航区在左、工作区在右的方式排列。通过数据库资源管理器树进行导航。单击树中的数据库节点,RockMongo将打开一个子树,上面装饰着表示该数据库集合的子节点。单击一个集合,工作区域将打开一组菜单,这些菜单的命令提供了MongoDB的CRUD操作。您可以发出查询、插入文档、清除整个集合,等等。

RockMongo的界面在很大程度上并不复杂。要创建数据库,单击Databases菜单项,选择create a New database,输入名称,单击OK,就可以了。这符合MongoDB创建数据库或集合的简单机制(有时是危险的)。需要调整的参数很少。您只需创建一个数据库,在其中放入一个集合,然后开始用文档填充该集合。

当您在MongoDB实例的组件中导航时,工作区域的上部提供了一个上下文感知的菜单或一个交互式的跟踪路径。选择一个数据库,上下文感知菜单提供以下选项:

统计数据。此条目显示集合的数量、文档的数量、定义的索引的数量和存储所使用的空间量等信息。

创建一个新的集合。RockMongo允许您指定一个集合被封顶,它设置了可以添加到集合中的文档数量的限制以及可以消耗的存储空间。当达到存储限制时,新文档的引入会导致旧文档以“最早的优先”的方式丢弃。

命令。选择Command, RockMongo将带您离开数据库的breadcrumb路径,并呈现给您一组不同的菜单(一开始可能会让人困惑的上下文切换)。文本框允许您为数据库命令输入BSON表达式。如果你不记得这些命令是什么(有很多),RockMongo深思熟虑地提供了一个链接到MongoDB文档的适当位置,在那里你可以仔细阅读MongoDB命令的整个列表。

执行。Execute菜单项打开一个文本框,您可以在其中键入调用MongoDB的JavaScript API的JavaScript函数。例如,您可以通过这种方式在数据库上输入一个mapreduce操作。单击另一个按钮,RockMongo甚至会打开一个单独的文本框,您可以在其中输入BSON,以便传递到您定义的JavaScript函数中。

转移。Transfer菜单选择将数据库从一个系统复制到另一个系统。指定用于身份验证的目标数据库的主机的IP地址、用户名和密码,选择要复制的集合,RockMongo将从源服务器传输到目标服务器。

导入和导出。选择Import或Export将文档复制到数据库集合中或复制出数据库集合。RockMongo使用JavaScript源代码执行导入或导出,可以在shell中执行。例如,如果执行导出,将得到一个JavaScript源文件,其中包含一系列db.getCollection.insert()函数,其参数是导出文档的BSON。您可以将这个源文件交给MongoDB shell,然后快速地将文档导入到另一个数据库中。

数据库菜单中的其他命令允许您执行用户身份验证、对数据库进行问题修复或删除数据库。

当您下钻到单个集合时,RockMongo将在工作区域的较低部分显示该集合的文档。查询文本框显示在上面部分。每个文档都出现在它自己的小窗口中,该窗口顶部是用于操作该文档的菜单命令列表。您可以更新(编辑)文档、删除文档、添加新字段或复制文档。(复制一个文档将产生一个新文档,该文档的字段与原始文档具有相同的值,但_id字段除外。)还有一个文本菜单项,当单击它时,它将在文本框中显示文档,适合剪切和粘贴。

查询菜单选择(文本框上方)显示了RockMongo欢迎的一个细微差别。通常,当你输入一个文档(MongoDB查询被表示为文档)时,你在BSON中指定它的结构。然而,PHP应用程序几乎总是使用关联数组的PHP语法来表示MongoDB的文档。因为RockMongo是用PHP编写的,人们可能期望它只能识别关联数组语法。但是RockMongo让你选择其中一种。

键入查询,单击Submit,满足查询的文档将显示在工作区域的下半部分,每次10个。单击Explain按钮生成一个文档,这是MongoDB关于在当前环境中如何处理查询的“解释”。从中可以得到很多有用的信息。例如,对于分片集群上的查询,解释文档将告诉您服务器是按顺序执行分片查询还是并行执行。您可以看到查询在每个碎片上所需的毫秒数(每个碎片服务器都有一个子文档)。您还可以看到每个碎片上扫描的文档数量。从这里我了解到,我所有的文档都放在了我的双碎片服务器集群的一个碎片上。

RockMongo可以通过插件进行扩展。RockMongo插件是一种过滤器和事件侦听器的组合。RockMongo出口工作流程点,过滤器可以附加。当您注册一个插件时,过滤器被连接到这些点上。例如,SERVER_MENU_FILTER钩子可以用来向服务器菜单中添加菜单项。插件还可以定义控制器,这些控制器可以与按钮相关联,从而在RockMongo中提供额外的功能。目前,有三个插件可用:一个mapreduce插件、一个分片插件和一个为MongoDB system.js集合提供工具的插件,该集合存储MongoDB相当于存储过程的内容。

RockMongo的文档非常有限——尽管本文所介绍的四种产品都是如此。如果您正在寻找在线手册,您将找到一个wiki页面,其中显示功能列表、一个到安装说明的链接和一个到下载页面的链接。你也会在RockMongo的主菜单上找到一个手册,但它不过是一个链接到其他网页的列表,主要是MongoDB网站上的网页。

RockMongo的整个布局是经过深思熟虑的,并且在每个级别都有大量的统计数据可用。设置很简单,传输函数很方便,而且RockMongo的BSON或PHP语法流量能力特别受欢迎。

支持JavaScript函数和GridFS

UMongo是由Antoine Girbal创建的一个独立的Java应用程序,他是10Gen的软件工程师。(Girbal很快说UMongo是他自己创造的,并没有得到10gen本身的认可。)UMongo至少需要Java 1.6。

启动UMongo,打开它的连接对话框,连接到运行中的MongoDB服务器,你会看到一个三窗格窗口:左边的导航窗格,右上角的当前对象统计窗格,右下角的结果窗格。统计信息窗格的内容取决于在导航窗格中选择了哪个组件。例如,选择一个分片数据库集群,将显示集群服务器本身的连接信息(例如运行为该集群处理请求路由的mongos实例的主机),以及每个分片成员的连接信息。

结果窗格中的项实际上总是BSON文档。UMongo在树形控件中显示文档,因此可以根据需要展开或折叠输出。事实上,整个UMongo都在使用树控件。例如,导航窗格中的分层视图是一个树控件。

在统计窗格上面,一个上下文感知的菜单会根据在导航窗格中选择的对象来更改其内容。例如,在导航窗格中选择一个数据库,菜单变成:

数据库。此菜单上的项允许您创建新的集合、刷新显示(在导航窗格中)或删除选定的数据库。

命令。在这里,您可以以BSON形式或提交给服务器的JavaScript代码发出命令。这个菜单还有一个选项,它将以BSON文档的形式列出可用的命令(这不是最容易阅读的内容)。另一个选择将发出一个dbstats命令,用于从数据库检索最新的统计信息,例如对象的数量、平均对象大小、索引大小等。

用户。在这里,您可以对现有用户进行身份验证,或者添加或删除用户。只有在对数据库启用了身份验证时,authenticate命令才能工作(默认情况下不是这样)。对于指定的用户名和密码,它实际上是一个登录命令。

分片。此菜单同时存在于服务器级和数据库级。在服务器级别,菜单选择将列出当前集群中的切分服务器、向集群添加切分服务器或删除切分服务器。在这里,您还将发现一个刷新操作,它刷新mongos进程中缓存的元数据。在数据库级别,此菜单中的项允许您为数据库启用分片,显示关于数据库的特定于分片的信息(例如,集群的哪个成员是主分片服务器),并将主服务器移动到集群的另一个成员。

GridFS。这个菜单选项允许您操作MongoDB的GridFS文件系统中的文件(假设您已经为所连接的数据库定义了一个文件系统)。它将打开一个文件浏览器,您可以从该浏览器上传文件到GridFS,或者下载文件,从而将文件从GridFS中复制出来。

GridFS菜单还提供了一个删除GridFS文件的选项。遗憾的是,响应文档只指出删除命令是否执行——而不是删除是否实际发生。您必须查看显示在fs旁边的文档计数。在左侧窗格中显示的数据库导航树中的文件集合。

工具。根据选择的是服务器、数据库还是集合,此菜单也有所不同。在服务器级别,您可以启用或禁用自动平衡(MongoDB运行的进程,以在分片集群的成员之间保持分片平衡)。或者可以重新生成配置数据库,它是服务器对集群配置的内部描述。

如果选择了数据库,工具菜单提供了修复数据库、更改分析参数、向数据库添加JavaScript函数(MongoDB相当于SQL的存储过程)和设置与数据库相关的各种参数的选择。例如,您可以选择是将读取提交给主服务器、辅助服务器,还是提交给没有首选项的服务器。

最后,在集合级别,Tools菜单中的条目允许您验证集合的结构、重新构建集合的索引、压缩集合、设置与集合关联的各种数据库选项,等等。

在UMongo故障有时会导致Java异常被抛出。例如,如果您尝试上传到GridFS的文件不存在,你不会得到一个不错的,整洁的错误信息 - 你得到一个堆栈转储。系统会显示一个对话框,显示已经下达了命令的不只是细节,但例外的Java堆栈跟踪以及从它很容易推断出了什么问题。虽然这种令人不安 - 当它第一次发生了,我想知道,如果有什么东西断裂 - 它不脱轨UMongo。只需关闭对话框,并继续工作。

相关:
123. 第二页
第2页共3页
工资调查:结果在