MongoDBプラグインを使う時には、behavior の SqlCompatible をご一緒にっ!
先日のエントリーの「MongoDBプラグインとSearchプラグインであいまい検索できるようにした。」ですが、
もっと簡単な方法が提供されてました。
http://d.hatena.ne.jp/ihiro81/20111031/1320080671
SqlCompatible という behavior が用意されているので下記のように設定するだけでOKでした。
<?php class Article extends AppModel { public $actsAs = array('Search.Searchable', 'Mongodb.SqlCompatible'); public $filterArgs = array( array('name' => 'filter', 'type' => 'query', 'method' => 'orConditions'), ); public function orConditions($data = array()) { $filter = $data['filter']; $cond = array( 'OR' => array( 'title LIKE' => '%' . $filter . '%', 'description LIKE' => '%' . $filter . '%', )); return $cond; } }
これを使えば、Mongoの条件オペレータを一般的なSQLのものに変換してくれるので、超絶に楽になりました!!
(今までMongoDBの条件オペレータを手入力してましたよ…。)
資料読んでたのが readme と sample とかだけだったので、
てっきりこのあたりは対応していないのかと思ってたorz
ソースを確認する癖をつけないとダメですね!!