为什么数据库更改会消失?

时间:2012-03-09 14:26:05

标签: mongodb missing-data

我有一个在64位Amazon EC2实例上运行的MongoDB服务器(启用了日记功能)。昨天我更新了一些文件并刷新了网页,以确保它反映了这些变化。它做了。 但今天我看到,不仅昨天的变化消失了。我失去了一周的更新! 为什么会这样,并且有可能恢复丢失的数据吗?

我做出更改的方式可能有问题吗?

public function edit_app()
{
    $query = array('_id' => $_POST['id']);
    $apps = $this->mongo->db->apps;
    if ($app = $apps->findOne($query)) {
        $app['title'] = $_POST['title'];
        $app['version'] = $_POST['version'];
        $app['author'] = $_POST['author'];
        ...
        $apps->save($app);
    }
}

2 个答案:

答案 0 :(得分:1)

根据您提供的信息,可以明确地说出很多内容。但是,我可以提供一些提示,让您朝着正确的方向前进:

  1. 考虑一下应用程序是否有可能 进程可能已经在内存中保存了一些文件(已加载 在更新之前)并在更新后重新保存?
  2. 服务器是副本集的一部分吗?如果是的话,那是所有成员 副本设置为健康,主服务器正常并正确选举?

答案 1 :(得分:0)

我道歉,我一定是个盲人。 edit_app()函数出错:

$app['visible'] = $_POST['visible'];        // was
$app['visible'] = isset($_POST['visible']); // fixed