Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

スキーマレスなDBが使いたくなったのでMongoDBはじめました

なぜMongoDBか?

そもそも、どんなものがあるのか知らなかったので少し調べてみた。MongoDB前々から聞いたことがあったが
を見ていると、CouchDBというのもあるようだ。


ここでそもそも条件を思い出す。

  • 内向けかつローカルサーバーを建てる前提
  • 大きなシステムじゃない
  • ぶっちゃけスキーマレスなら何でもいい
  • PHPだと他の人にもソースのメンテを頼める

という条件なので

PHP用のモジュールが配布されているMongoDBにした。

インストールからサンプル実行まで

MongoDBのインストールはすごく簡単で公式サイトからバイナリを落としてきてチュートリアル通りにやると


デフォルトで/data/dbに保存するようなので、フォルダを用意して

$ mkdir -p /data/db

とりあえず起動する。

$ ./mongodb-xxxxxxx/bin/mongod

別のターミナルを起動してから、標準でシェルがついているので以下のような
コマンドを打ってみると動作が確認できる

$ ./mongodb-xxxxxxx/bin/mongo
> db.foo.save( { a : 1 } )
> db.foo.find()

このときMongoDBの実行ファイルは/usr/local/の置いた。


PHP側の設定は

  pecl install mongo

としてpeclコマンドでMongoDBのモジュールをインストールする
(自分の環境ではうまく動かなかったので、
https://github.com/mongodb/mongo-php-driver/downloads からバイナリを落としてきて配置した)

最後にphp.iniに

  extension = mongo.so

と書くとOK。あとはphpinfo()などでmongoがあるか確認すれば、完璧。


とりあえずはインストールまで。

20110127に追記

環境の下準備が必要だったのをメモ書き。

  • Macの場合デフォルトでphpが入っているが、pearpeclコマンドがないのでMAMPをインストールした
  • autoconfがないとpeclを使ってモジュールのインストールができないので、macportsをあらかじめインストールしておく必要がある