#CakePHP での #MongoDB でTRUNCATE TABLE

CakePHPでMongoDBをつなげてテストデータの投入のシェルとかを書いています。

データの投入の前にMongoDBのコレクション(RDBならテーブルかな)の全データクリアをしたいのですが、今まではこのようにTRUNCATEをSQLで呼び出していました。

$this->Model->execute('TRUNCATE TABLE table);

これはMongoDBでは動きません。MongodbSource.phpにはtruncate()というメソッドがりますが、どう呼び出したら動くかわからず、以下のようにしました。

$this->Model->query(array('$eval' => 'db.collection.drop();'));

$evalってなあに? といった状況です。もっといい方法があるかも。

「#CakePHP での #MongoDB でTRUNCATE TABLE」への2件のフィードバック

  1. こんにちは、cake mongoの作者です。ご利用いただきありがとうございます。

    cake mongoのデータソースのインスタンスは、Cake2では下記の方法で取得できるので、そこから呼出せます(Postモデルの利用を例に)

    $cakeMongo = $this->Post->getDataSource();
    $cakeMongo->truncate(‘tableName’);

    1. 教えていただいたコードでもtruncateできました。ありがとうございました。

コメントは停止中です。