PHPLithiumFrameworkを使用しています。構成を通じてsafe=>'majority'を設定する方法はありますか。
私はmongodbレプリケーションを使用しており、ドライバーが成功を返す前に、データがレプリカセットメンバーの大部分に書き込まれることを確認したいと思います。
PHP5.3とMongoDB2.2.xを使用しています
ありがとうゴータム
これはあなたの質問に対する直接の答えではありませんが、データベースでデフォルトの動作を設定できます。
cfg = rs.conf()
cfg.settings = {}
cfg.settings.getLastErrorDefaults = {w: "majority", j: true}
rs.reconfig(cfg)
そしてリチウムでは、フィルターを使ってこれを行うことができるはずです:
Connections::get('default')->applyFilter(array('create', 'update', 'delete'), function($self, $params, $chain){
$params['options']['safe'] = true;
return $chain->next($self, $params, $chain);
});
またはクエリで直接:
if (MyModel::update($query, $conditions, array(‘safe’ => true))) {
// success
}
これに対するオープンプルリクエスト'safe' => true
があり、データベース構成に追加できます。間もなく統合されます。
そうでなければ、ニルスによって投稿されたソリューションはうまくいくはずです。