0

64 ビットの Amazon EC2 インスタンス (ジャーナリングが有効) で MongoDB サーバーを実行しています。昨日、いくつかのドキュメントを更新し、Web ページを更新して、変更が反映されていることを確認しました。やった。しかし今日、昨日の変化がなくなっただけではないことがわかりました。1週間の更新を失いました!これはなぜですか? また、失われたデータを回復することは可能ですか?

変更の仕方が間違っているのではないでしょうか?

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 に答える