0

私がこのコードで間違っていることは明らかですか?

$result = $this->_grid->remove(
    $someQueryWithOneResult, array('safe' => true, 'justOne' => true)
);
if ($result['n'] === 0) {
    throw new FileNotFoundException("no file with xuuid '" . $xuuid . "'", 404);
} else if ($result['n'] === 1) {
    return true;
}

例外がスローされることがあります(結果が0であったことを意味します)。私はそのファイルが存在し、後で削除されると確信しています。これを、2つのシャードと2つのレプリカセットを持つmongoDbクラスターに対してバッチジョブで実行します。

私はmongoDb内のバグがPHPドライバー(多分'safe' => trueが機能しない)か、シャードに問題があるのではないかと疑っています。

何か案は?グーグルは本当に助けることができませんでした:-(

よろしく

マルコ

4

1 に答える 1

1

https://jira.mongodb.org/browse/SERVER-4532またはそのバリアントhttps://jira.mongodb.org/browse/SERVER-7958のいずれかに遭遇している可能性があります。

これらは現在の開発バージョン2.3(2.4製品リリースになります)で修正され、修正は2.2にバックポートされ、この冬の後半に2.2.3リリースで提供される予定です。

于 2012-12-28T04:39:08.027 に答える