Review: 4 free, open source management GUIs For MongoDB
Genghis, phpMoAdmin, RockMongo, and UMongo free MongoDB database management from the command line
phpMoAdmin: Easy install, busy GUI
Obviously named after phpMyAdmin -- the well-known PHP-based GUI administration tool for MySQL -- phpMoAdmin is a single-file application. The entirety of phpMoAdmin resides in a solitary PHP file, moadmin.php. This, of course, makes it exceedingly easy to install. Just create a folder in your Web server's webroot directory, drop the moadmin.php file into it, and you're set.
Being in a single PHP file doesn't mean that phpMoAdmin is unconfigurable, however. Open moadmin.php, and you'll find various configuration options that can be enabled by uncommenting the lines that contain them. For example, by default, phpMoAdmin provides no user authentication. Uncomment one line, edit in an administrator name and password, and access authentication will be required when phpMoAdmin launches. You can also configure phpMoAdmin to use one of three display themes.
phpMoAdmin owes its slender size to its origina as a stripped-down version of the open source Vork Enterprise Framework, an MVC framework for building PHP Web applications. The full Vork Framework is about 500K, but the designers of phpMoAdmin whittled it down to less than 100K for phpMoAdmin. (The phpMoAdmin file itself is about 113K.) The designers chose the Vork Framework because, at the time of phpMoAdmin's inception, Vork was the only framework with integrated MongoDB support.
Start phpMoAdmin, and in the upper-left corner of the screen, you'll see a drop-down from which you can select one of the available databases that phpMoAdmin has found on the current host. (You can configure phpMoAdmin to connect to a server on a remote host, but you must modify the moadmin.php file to do that.) To the right of the drop-down is a "Change database" button, which you click to actually cause the database in the drop-down to become the current database on which operations can be performed.
Also in the upper part of the page you'll find links for "Repair database" and "Drop database," which act on the current database. You can tell which database is current because its name is displayed in an oversized font next to the "Change database" button. The Repair link will issue the
repairDatabase operation on a database (recommended only in exceptional circumstances, because
repairDatabase obtains a global lock on the database while it's doing its work). I was told by the phpMoAdmin team that the Repair capability is a holdover from the early days of MongoDB, when the database often became corrupted. The Drop link's function is self-evident.
You'll find no fancy graphical icons on any of the controls in phpMoAdmin. An object that can be edited will have the hyperlinked text [E] displayed adjacent to its name; adjacent to an object that can be deleted, you'll find a [X] hyperlink. So click the [E] link next to a collection's name to change that name. Click the [X], and you're asked if you really want to delete that collection.
Select a database, and phpMoAdmin displays a list of the collections in the database. Click on a collection, and you're shown the first 100 documents in the collection. (You can alter the number of documents displayed per page by editing the moadmin.php file, or by entering a value in the limit textbox that's displayed when you select a database.) The universal fast-forward and fast-reverse indicators (>>> and <<<) appear when the number of documents in a collection exceeds what can be displayed on a single page.
Composed of a single PHP file, phpMoAdmin is easy to set up, but navigating its busy interface takes practice. Here phpMoAdmin is shown displaying documents in the Purchases collection.
By clicking the "Show Database & Collection selection" link, you can combine the view of the current database and its collections plus the currently selected collection and its first 100 documents. This makes for a busy display and reveals one of phpMoAdmin's major weaknesses: You can easily become lost in it.