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
ソースを確認する癖をつけないとダメですね!!