"'Safe' option is deprecated, please use 'w' instead"の解消方法

  • 0
    Like
  • 0
    Comment
    More than 1 year has passed since last update.

    CakePHPでMongoDBを利用しているのですが、使用しているライブラリが古いせいかログに、

    "'Safe' option is deprecated, please use 'w' instead"
    

    というnoticeメッセージが大量発生していました。

    公式ドキュメントをみると、メッセージ通り、safeモードのオプション指定は非推奨になっているので、write concernを使えとのこと。

    before.php
    $collection->insert($data, array('safe' => true));
    $collection->save($data, array('safe' => true));
    $collection->update($conditions, $data, array("multiple" => false, 'safe' => true));
    

    となっているのを、

    after.php
    $collection->insert($data, array('w' => 1));
    $collection->save($data, array('w' => 1));
    $collection->update($conditions, $data, array("multiple" => false, 'w' => 1));
    

    に修正したところ解消しました。

    めでたしめでたし。

    困ったときは公式ドキュメントをみるに限りますね。
    http://php.net/manual/ja/mongocollection.insert.php
    http://php.net/manual/ja/mongocollection.save.php
    http://php.net/manual/ja/mongocollection.update.php