Genghis, phpMoAdmin, RockMongo, and UMongo free MongoDB database management from the command line

MongoDB is certainly one of the most popular open source, document-oriented NoSQL databases. Developed and maintained by 10gen, MongoDB is available in both a free version and a paid-for enterprise version, which adds features such as Kerberos security, SNMP access, and live monitoring features. However, neither the free version nor the enterprise version comes with a management GUI.

Rather, management of a MongoDB instance is accomplished through the capable mongo shell command-line application. From the shell, you have access to database manipulation functions based on JavaScript and BSON (Binary JSON) for controlling all aspects of MongoDB server, from creating databases and collections to adding, removing, and modifying documents to defining indexes to executing mapreduce operations.

Sometimes, however, a GUI-based management console makes a welcome alternative. A graphical interface can display the components of a multidatabase server in hierarchical fashion, simplifying navigation through the database's elements. Put another way, with a GUI, you don't have to remember (or type correctly) the exact names of things. The GUI will figure them out, display them, and let you select them. In addition, a GUI's editing capabilities are typically more sophisticated than what's available at the command-line interface.

In this article, we'll examine four open source MongoDB GUI management tools:

RockMongo, a PHP-based application with a surprising array of features

phpMoAdmin, also written in PHP, based on a compact framework that reduces the footprint to a single PHP file

UMongo, a Java-based application that is both full-featured and easy to navigate

Genghis, a clean and straightforward GUI management console that has been released in both Ruby and PHP

I tested these management consoles on a small MongoDB cluster running in an array of virtual machines. I ran the applications on Windows 7 and Linux client systems, but they are all written in languages that allow them to run on any popular operating system.

Genghis: Clean GUI, PHP or RubyGenghis is unique in that versions exist for both Ruby and PHP. I had problems installing the Ruby version, which has many dependencies. Ultimately, I used the PHP version. It is a single file, and it can be launched from the command line to be executed within PHP 5.4's built-in Web server. Genghis's creator, Justin Hileman, assured me that the PHP version was identical to the Ruby version.

Launch Genghis in the PHP Web server and point your browser to the port you've selected as one of the command-line arguments -- there's Genghis. The PHP version's only external dependency is PHP's MongoDB driver.

Genghis's layout is sheer simplicity. Everything that isn't a BSON document is displayed in tables. Of course, the content of a given table depends on the level you're at. The top level is Servers. Click on a server from the displayed table of MongoDB servers and you drill down a level to databases. Click on an entry in the table of databases; down a level you go to collections. Select a collection and you come to the lowest level: documents.

All the while, Genghis displays a breadcrumb trail at the head of every page. With Genghis, you always know where you are. Hover over any element in the trail, and a pop-up shows overview stats at that level. For example, hover over a database item, and the pop-up shows a list of the databases on the server, plus the number of collections in each database.