新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2011-05-10

[Perl]Data::Model::Driver::MongoDBというものをかいた

MongoDBをData::ModelのDriverとして使うためのモジュールをかいたので、githubにあげました。
http://github.com/ytnobody/Data-Model-Driver-MongoDB

使い方

githubにも書いてる通りですけど、こんな感じで使います。
use Data::Model::Driver::MongoDB;
my $mongo_db = Data::Model::Driver::MongoDB->new(
  host => 'localhost',
  db => 'my_database',
);
my $schema = Oreore::Schema->new;
$schema->set_base_driver( $mongo_db );
これでData::Modelのインターフェースに則ってデータの差し込みや更新、読み込み等が出来るようになります。

普通のドライバと異なる箇所

ほとんどMongoDBの仕様(?)に由来するものばかりです。
まず、setするときに自分で主キー値(idとかそういうの)を設定する必要がなくかつ、主キー値の変更ができません。
また、D::Mではデータを取得するget()において、絞り込み条件設定に"where"をつかうのですが、D::M::D::MongoDBでは、
my @rows = $schema->get( book => {
  where => [
    price => { '<' => 1000 },
  ],
);
などのような、不等号などを用いた範囲検索ができません。

0 件のコメント: