MongoDBとは?

近年主にWebアプリケーションのデータストアとしてRDBMSの代わりにNoSQLと呼ばれるミドルウェアが注目を集めている。NoSQLは、RDBMS以外のデータストアの総称であり様々な製品が存在するが、いずれもRDBMSよりも機能がシンプルな分高速に動作し、スケーラビリティに優れるという特徴を持っているものが多い。

MongoDBは数あるNoSQL製品の中でも特に人気の高いもののひとつで、スキーマレスなドキュメント指向のデータベースだ。今回は、このMongoDBのフロントエンドとして利用可能なツールを紹介したい。

mViewer

mViewerは、Javaで実装されたWebベースのMongoDBフロントエンドだ。軽量サーブレットコンテナであるwinstoneが同梱されており単体で実行できるようになっているため、Javaが動作する環境があればすぐに利用することができる。

図1 : mViewer

データベースやコレクションの作成・削除、ドキュメントの作成・更新・削除、検索や内容の参照など一通りの操作をGUIで行うことができる。ドキュメントはJSONテキスト形式とテーブルツリー形式のいずれかで内容を確認することができるが、ドキュメントを変更する場合はJSON形式のテキストを直接編集する必要がある。また、少し変わった機能として、CRUDの状況をグラフ表示する機能がある。

図2 : 実行状況のグラフ

後述するJMongoBrowserやMeclipseなどと比較すると、ログイン画面で接続先のMongoDBの情報を毎回入力する必要があったり、複数のインスタンスを管理できないといった制約がある。そのため複数のMongoDBのインスタンスを管理しなければいけない場合には向いていないだろう。

その他のWebベースのMongoDBフロントエンドには、Pythonで実装されたFang of MongoやPHPで実装されたRockMongoなどがある。

JMongoBrowser

JMongBrowserは、Javaで実装されたスタンドアロンアプリケーションだ。Swingを使用しており様々なプラットフォームで動作するのが特徴だ(ダウンロードページにはWindows、Linux、Mac用のアーカイブが用意されている)。

図3 : JMongoBrowser

mViewer同様、データベースやコレクションの作成・削除、ドキュメントの作成・更新・削除、検索や内容の参照など一通りの操作をGUIで行うことができる。

また、同時に複数のMongoDBインスタンスに接続可能なほか、ドキュメントの作成・更新や検索条件の入力時はグラフィカルに操作可能なJSONエディタを利用することができたり(もちろんテキストで直接JSONを入力することも可能)、検索結果をJSONやCSV、BSONでエクスポート・インポートする機能もある。

図4 : JSONエディタ

その他のスタンドアロンで動作するMongoDBフロントエンドには、.NETで実装されたMongoVUEやMac専用のMongoHubなどがある。

Meclipse

Meclipseは、Eclipseプラグインとして動作するMongoDBフロントエンドだ。以下の更新サイトからインストールすることができる。
http://update.exoanalytic.com/org.mongodb.meclipse/

図5 : Meclipse

JMongoBrowserと同様に複数のインスタンスを管理することができ、接続情報が保存されるため、毎回入力する必要がないのは便利だ。ただし、機能はかなり限定されており、ドキュメントの検索と内容の確認程度しかできない。

開発環境としてEclipseを利用している場合に、ちょっとデータを確認したいという用途にはよいかもしれないが、ドキュメントの作成や更新などを行う必要がある場合は別のフロントエンドを利用する必要がある。今後の機能強化に期待したいところだ。

まとめ

MongoDBはNoSQL製品の中でも人気が高いだけのことはあり、フロントエンドもWebベースのものからスタンドアロンで動作するもの、Eclipseプラグインまで様々なものが存在する。本稿で紹介したもの以外にも、MongoDBのWebサイトでは多くのフロントエンドが紹介されているので参考にして欲しい。