【问题标题】:Delete file on mongoDb gridFs results in "0", even if it is there删除 mongoDb gridFs 上的文件会导致“0”,即使它存在
【发布时间】:2012-12-27 17:06:50
【问题描述】:

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

$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 不起作用),或者可能是分片有问题。

有什么想法吗?谷歌真的帮不上忙:-(

问候

马尔科

【问题讨论】:

    标签: php mongodb gridfs


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,这很有可能。
    猜你喜欢
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多