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 回答