在mongoDb gridFs上删除文件会导致“0”,即使它在那里

时间:2012-12-27 17:06:50

标签: php mongodb gridfs

这个代码有什么明显的错误吗?

$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驱动程序(可能'安全'=>真的不起作用),或者碎片可能有问题。

有什么想法吗?谷歌无法真正帮助: - (

此致

马尔科

1 个答案:

答案 0 :(得分:1)

您可能会遇到https://jira.mongodb.org/browse/SERVER-4532https://jira.mongodb.org/browse/SERVER-7958的变体。

这些已在当前开发版本2.3(将成为2.4生产版本​​)中修复,并且修复程序已反向移植到2.2,并将在今年冬季晚些时候发布2.2.3。