« HTML5はじめました | 「htmlSql」を… »

2010.07.20

PHPerの為のMongoDB入門

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをnewsingに追加

最近巷でよく聞くNoSQL(Not Only SQL)

試してみたくてPHPから簡単に使えるものはないものか・・・と色々探した結果たどり着いたのがMongoDBでした。

今回はインストールから、簡単に使ってみるところまで紹介します

[MongoDBとは?]

http://ja.wikipedia.org/wiki/MongoDB

[インストール方法]

1.yumにリポジトリを追加する

$ vim /etc/yum.repos.d/10gen.repo

下記を記入

[10gen]

name=10gen Repository

baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/$basearch/

gpgcheck=0

enabled=1

2.MongoDBのインストール

リポジトリを追加したのでinstallするだけ

$ yum -y install mongo-stable*

ちゃんとインストールできたか確認しましょう

$ mongod –version

下記のような結果が返ってきます

db version v1.4.4, pdfile version 4.5

Tue Jul 20 16:50:24 git version: 9dcac11bd72c7cb34ca278313f033efcdd4908eb

3.MongoDBの起動

yumで入れたので起動もごくごく普通に起動できます

$ /etc/init.d/mongod start

4.PHPのモジュールを追加する

PHPerとしてはここからが本題、mongoモジュールはpeclに用意されているのでpeclコマンドを使います

pecl install mongo

peclコマンドが使えないって場合はphp-pearがモジュールにあるか確認しましょう(結構はまった)

peclでインストールしたときのお約束

vi /etc/php.d/mongo.ini

以下を書き込みます

extension=mongo.so

確認

php -m

mongoが追加されてない場合はhttpdを再起動して確認してください。

これで使う準備は出来ました。

[簡単な使い方]

extensionの有無を確認する

if (!extension_loaded(’mongo’)) die (’Mongoがインストールされてないよ’);

接続する

$mongo = new Mongo(’mongodb://localhost:27017′);

コネクションを確認する

if (!$mongo->connected) die(’接続されてません!’);

使うdatabaseを選択

$db = $mongo->selectDB( “testdb” );

使うtableを選択(mongoではtableのことをcollectionと呼ぶ)

$col = $db->selectCollection( “testcollection” );

insert

$col->insert( $data );

select

$cursor = $col->find();

foreach ($cursor as $id =>$obj) {

var_dump( $obj );

}

こんな感じでMySQL等とほぼ同じ感覚でデータを操作することが出来ます。

かなり駆け足でしたがMongoDBの入門でした。

最近ではこれをデフォルトとするフレームワークも誕生していますし一度試してみてはいかがでしょうか?

参考URL

http://d.hatena.ne.jp/ja9/20100707/1278495362

http://d.hatena.ne.jp/nazone/20091126/p1

http://labs.unoh.net/2010/07/hellolithium.html

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>