ECサイト運営開発記 このページをアンテナに追加 RSSフィード

2010-04-24

[]ECサイトPHP×MongoDBを使ってみた

ここ最近よく見かける言葉で「ドキュメント指向型データベース」なんてのがありますが、正直、従来のRDBMSとどう違うのかさっぱりわからない。

で、このドキュメント指向型データベースの代表格がCouchDBとMongoDBなんですが、自分なりに調べてみた結果、MongoDBの方が環境をそろえる敷居は

低そうなので、深いことは考えず、MongoDBをちょっと使ってみることにした。

<?php

// 接続
$mongo=new Mongo();
$db = $mongo->selectDB($dbName);

/**
 *データ取得
 **/
// DBでいうデーブルを指定
$col=$db->selectCollection("session");	

// 全件取得
$cursor=$col->find();
//var_dump($cursor);

// 条件付き取得 SQLでいうWhereっぽいもの
$cursor=$col->find(array("session_id"=>"hogehogehoge"));
//var_dump($cursor);

// 一件だけ取得したい場合
$cursor=$col->findOne(array("unique_id"=>"hoge1"));
//var_dump($cursor);

// ページネートしたい場合(自信ありません)
// 取得した結果に対して
$cursor->skip(10);  // Skipで11件目から表示し
$cursor->limit(10); // そこから10件まで取得可能にする

// データの追加
// $dataは基本連想配列でkey=>valueな値で。
$col->insert($data);

// 更新(自信ありません)
// 追加と同様に$dataは基本連想配列でkey=>valueな値で
// とりあえずは、array_merge($data,$newData)で古いデータと新しいデータを置き換えるようにしてる。
$data=$col->findOne(array("unique_id"=>"hoge1"));
$data=array_merge($data,$newData);
$col->save($data);

// 削除(全てを焼き払いたい人向け)
$col->remove();

// 条件付き削除
$col->remove(array("unique_id"=>"hoge1"));

?>
  • 使ってみた感想
    • RDBMSようなテーブルの結合みたいなことはできないっぽい。
      • なので、今のところはなんでも入る箱と考えるようにしている。
    • フィールドの型やフィールド数を一切、意識しなくていいので楽。
      • あるデータだけフィールドが一つ増えても、全く怒られない。
        • 故に拡張しやすいし、改修もしやすいと思う。
    • 今後もなんとな〜く使っていきたいので、勉強が必要。

MongoDBについてちょっとだけ解説

みてわかるクラウドマガジンvol.1 (日経BPパソコンベストムック)

日経BP出版センター
売り上げランキング: 14126
おすすめ度の平均: 4.5
5 サービスの比較
5 とっかかりによい
5 技術用語としてのクラウド解説本
4 技術者向けの良書
3 基礎的な知識を得るにはいいかも

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/nohohon_x/20100424/1272129274