0

我有一个运行在 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);
    }
}
4

2 回答 2

1

根据您提供的信息,没有什么可以明确说明的。但是,我可以提供一些提示来引导您朝着正确的方向前进:

  1. 考虑一下应用程序进程是否有可能将一些文档保存在内存中(在更新之前加载)并在更新之后重新保存?
  2. 服务器是副本集的一部分吗?如果是这样,副本集的所有成员是否都健康且主服务器已启动并正确选择?
于 2012-03-09T16:02:23.427 回答
0

对不起,我一定是瞎了眼。edit_app() 函数中出现错误:

$app['visible'] = $_POST['visible'];        // was
$app['visible'] = isset($_POST['visible']); // fixed
于 2012-03-09T21:29:17.730 回答