MongoDBをphpから操作する方法。

前回の記事でMongoDBをインストールしましたので、MongoDBをphpから操作してみました。
CentOS5.4にMongoDBをインストールする方法! - @camelmasaの開発日記


testデータベース&testコレクションの作成

testデータベース&testコレクションの作成には下記のスクリプトを使用しました。
(Mongoクラスのコンストラクタは適切な値を設定して下さい。)

<?php

$mongo = new Mongo("192.168.80.139:27017");

$db = $mongo->selectDB("test");
$col = $db->createCollection("test");
$col->insert(array("test" => "test"));

スクリプトを実行すると、/data/db内にデータベースファイルが作成されます。

-rwxr-xr-x 1 root root         5  2月 22 15:14 mongod.lock
-rw------- 1 root root  67108864  2月 21 21:52 test.0
-rw------- 1 root root 134217728  2月 21 21:52 test.1
-rw------- 1 root root  16777216  2月 21 21:52 test.ns

SQLiteの様にデータベースの持ち運びも楽そうですね。
(しかしファイルサイズが大きいかも…)


PECLパッケージPECL::Package::mongoのインストール

phpから操作する為にPECL::Package::mongoをインストールします。

pecl install mongo

その後php.iniにextension=mongo.soを追加します。

extension=mongo.so

これでPECLパッケージPECL::Package::mongoのインストールが出来ました。
(ブラウザからphpを実行する場合は、httpデーモンをリスタートすると有効になります。)


phpからMongoDBを操作

PECLパッケージPECL::Package::mongoがインストール&設定が出来たので、


mongodb.phpの編集

<?php

$mongo = new Mongo();

$db = $mongo->selectDB("test");
$col = $db->selectCollection("test");
$cursor = $col->findOne();

var_dump($cursor);

上記のphpの実行結果です。

php mongodb.php
array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["test"]=>
  string(4) "test"
}

phpからMongoDBのtestデータベース内のtestコレクションのデータを取得する事が出来ました!


まとめ

PPECLパッケージPECL::Package::mongoでMongoDBの値の取得を行う事が出来ました。
次こそはCouchDB,MongoDB,MySQLphpで実行した実行速度を計測してみたいと思います。


[PR]Spreeの情報を集めています。

ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/