The Query menu selection (above the text box) reveals one of RockMongo's welcome nuances. Typically, when you enter a document (and MongoDB queries are expressed as documents) you specify its structure in BSON. However, PHP applications almost always represent MongoDB's documents using PHP's syntax for associative arrays. Because RockMongo is written in PHP, one might expect it to recognize only the associative array syntax. But RockMongo lets you choose either.
Type in a query, click Submit, and the documents satisfying the query are displayed in the lower half of the work area, 10 at a time. Click the Explain button to produce a document that is MongoDB's "explanation" of how queries are handled in the current environment. There's plenty of good information to be had from this. For example, for queries on a sharded cluster, the explanation document will tell you whether the server executed shard queries sequentially or in parallel. You can see the number of milliseconds the query required on each shard (there is a subdocument for each shard server). You can also see the number of documents scanned on each shard. From this I learned that all of my documents had been placed on a single shard of my two-shard server cluster.
RockMongo can be extended via plug-ins. A RockMongo plug-in operates as a sort of combination filter and event listener. RockMongo exports workflow points at which filters can be attached. When you register a plug-in, the filters are hooked to those points. For example, the SERVER_MENU_FILTER hook can be used to add menu items to the Server menu. Plug-ins can also define controllers, which can be associated with buttons to provide additional functionality in RockMongo. Currently, three plug-ins are available: a mapreduce plug-in, a sharding plug-in, and a plug-in that provides tools for the MongoDB system.js collection, which stores MongoDB's equivalent to stored procedures.
RockMongo's documentation is painfully limited -- though this is true of all four products in this review. If you're looking for an online manual, all you'll find is a wiki page displaying a list of features, a link to installation instructions, and a link to the download page. You'll also find a Manuals item on the main RockMongo menu, but it's no more than a list of links to other Web pages, mainly pages on the MongoDB website.
The entire layout of RockMongo is well thought out, and lots of good statistics are available at every level. Setup is simple, the transfer function is handy, and RockMongo's ability to traffic in either BSON or the PHP syntax is particularly welcome.
UMongo is a stand-alone Java application created by Antoine Girbal, who works for 10Gen as a software engineer. (Girbal is quick to say that UMongo is his own creation and is in no way endorsed by 10gen itself.) UMongo requires at least Java 1.6.
Sign up for MIS Asia eNewsletters.