2011年10月29日土曜日

暇だから MongoDB でも入れてみるか

せっかくの休日、Eclipse の Xtext を試してみたかったのに、Indigo はコアダンプ吐いて即死するし、Helios はプロジェクトの作成に失敗するわで、15分くらいで心が折れた。

で、代わりの暇つぶしとして、最近 NoSQL について下調べしていて見かけた MongoDB とか言う奴でもいじってみようかなと思いつく。この辺りを参考(飽くまでも参考)にして、Fedora15 の 32bit 環境でやってみた。

実は、Fedora で管理しているMongoDB が「ソフトウェアの追加と削除」で最初からリストアップされてるんだけど、これをインストールしても、なんかちゃんと起動しなかった。

====

まずはインストールだけど、配布元の 10gen を Fedora (というか yum)に認識させるために、ファイル /etc/yum.repos.d/10gen.repo を作って以下の記述を追加する。

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
gpgcheck=0

そうすると、「ソフトウェアの追加と削除」にリストアップされるから、以下を選択して[適用]

  • mongo-10gen-server-2.0.1-mongodb_1
  • mongo-10gen-2.0.1-mongodb_1

インストールされたら、起動してみたい所だけど、その前に、なんかデータを保存するフォルダを作っとく必要があるらしい。

$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db

準備ができたので、Fedora の[サービス]ツールで mongod を開始する。

端末で、mongo を起動して動作確認。

$ mongo
> one = {name: "one", value: 1}
> two = {name: "two", value: 2}
> three = {name: "three", value: 3}
> db.things.save(one)
> db.things.save(two)
> db.things.save(three)
> db.things.find()
{ "_id" : ObjectId("4eabd63586daea21618266ca"), "name" : "one", "value" : 1 }
{ "_id" : ObjectId("4eabd63786daea21618266cb"), "name" : "two", "value" : 2 }
{ "_id" : ObjectId("4eabd63a86daea21618266cc"), "name" : "three", "value" : 3 }
> db.things.find({name:"one"}, {_id:0})
{ "name" : "one", "value" : 1 }
> db.things.find({value:2}, {name:1})
{ "_id" : ObjectId("4eabd63786daea21618266cb"), "name" : "two" }
> db.things.find({value:3}, {name:1,_id:0})
{ "name" : "three" }

ちゃんと動いてるらしい。

次は、java コードから動かしてみたい(チュートリアル)。

0 件のコメント:

コメントを投稿