MongoDBって何なの?

先日、MarkLogicって何なのかについて少し書きましたが、今回はMarkLogic同様NoSQLのMongoDBについてです。

仕事でMarkLogicを使うことになるかもしれない。RDBで解決できない問題が噴出したからだ。 しかし私はMarkLogicを使った...

NoSQL界では、MarkLogicよりMongoDBの方がもシェアが高く有名なようです。そのシェアはRDBを含めても世界4位なんだとか。いったいどうやって調べたんですかね。ダウンロード数かな。

そのシェアの高いNoSQLであるMongoDBを今度使うとのことで、インストールしてサンプルやらを作成しています。言語はJavaで作っていて、今のところCRUDでいうRは出来ました。残りのCUDも今週中には作成したいところです。

サンプルを作成してみて感じたのは、設定ファイルが少なくて便利!私は一つも設定ファイルを書いていません。ドライバはjarがあるのでビルドパスに追加するだけです。あとは、データの格納がjson形式なのでJavaやJavascriptでデータ取得する際に少々てこずりました。これは難しいという意味でなく、概念に混乱したためです。

概念的なことをざっくりいうと、RDBのテーブル1行がMongoDBのドキュメントです。ドキュメントはすなわちjsonです。ドキュメントが複数集まってコレクションなるものを構成し、これがRDBでいうテーブルです。

この考え方を理解すればMongoDBはとても扱いやすいです(まだDBからデータ読み込んでWebページに表示しかしていませんが)。扱うデータもjson形式なので、ドキュメントごとに構成を組むことが出来ます。RDBでいうと、一行ごとに列の長さや項目名を定義することが出来ます。

こんなに柔軟なデータのまとまりは初めてなので、どう扱っていいか中々思い浮かびません。データがあまりに自由だと、プログラムで取得する際に結構大変そうな気がしますね。MongoDBの用途としては、他のサイトでも言及されているようにデータが形式化されていないものが良いのではないかと思います。CRUDのサンプルを作成したら、実際に何かしらのデータを扱って遊んでみようと思います。

Let's share SNS