ページ

2012-07-20

MongoDBをPHPから使う



今回はMongoDBをPHPから使う方法です。
すごく簡単でした。

環境構築


ここを参考にします。

まずは拡張パッケージのインストール
sudo pecl install mongo

次にphp.iniに
extension=mongo.so
を追記します。

php.iniが何処にあるかわからない場合はphpinfo()を実行すると場所がわかります。
CentOS6でyumを使ってデフォルトのままインストールすると/etcの下にあると思います。

これで環境構築は終わりです。

チュートリアルを試す


これに従います。
コメントを追記したものを下に貼り付けてみます。

<?php
// MongoDBに接続 localhost:27017
$m = new Mongo();
// リモートホストにデフォルトポート27017で接続
// $m = new Mongo("exsample.com");
//リモートホストに任意のポートで接続(xxxxxはポート番号)
// $m = new mongo("exsample.com:xxxxx");
/*
データベースは $m->dbname; で選択できる。
存在しなければ作成される。
これは便利ではあるが、タイプミスをした場合、
そのままデータベースが作成されてしまうので気をつけて下さい。
*/
// データベース(comedy)を選択
$db = $m->comedy;
/*
コレクションもデータベースと同様に
$db->collection_name; で取得できます。
存在しなければ作成されます。
コレクション≒テーブル
*/
// コレクション(cartoons)を取得
$collection = $db->cartoons;
// コレクションにドキュメントを挿入します。
// まずはドキュメントを作成します。
/*
JSON形式を意識して
key => valueでドキュメントを連想配列として作成します。
*/
$obj = array("title" => "Calvin and Hobbes", "author" => "Bill Watterson");
// コレクションにドキュメントを挿入
$collection->insert($obj);
// 別のドキュメントを作成し、挿入します。
$obj = array("title" => "XKCD", "online" => true );
$collection->insert($obj);
// ドキュメントを全件取得します
$cursor = $collection->find();
// 全て表示します
foreach($cursor as $obj){
echo $obj["title"] . "\n";
}
?>


何回も実行すると、どんどんドキュメントが増えていきます。

実行後にMongoDBコンソールでデータベースが作成されていることを確かめます。

MongoDBコンソールを起動
mogno

データベースが出来ていることの確認(comedyが在ればOK)
show dbs;

データベースの選択
use comedy

コレクションの一覧取得(cartoonsが在ればOK)
db.getCollectionNames();

ドキュメントの一覧取得
db.cartoons.find();

チュートリアルの下の方には様々な関数の使い方などが解説されています。
時間があれば、そのうち記事にしようと思います。

以上です。


0 件のコメント:

コメントを投稿