C# ドライバーから MongoDB の db.repairDatabase() 関数を呼び出す方法はありますか?
コレクションを圧縮できます:
database.RunCommand(new CommandDocument("compact","collectionname"));
しかし、私はrepairDatabaseを呼び出すことができません。
「悪いオプション」というメッセージで例外が発生したというコメントに応えて、repairDatabase フィールドの値として 1 を使用するか true を使用するかについて、サーバーがうるさいことがわかりました。次の 2 つは同等であり、サーバーが「1」ではなく「true」を好まないため、どちらも失敗します。
database.RunCommand("repairDatabase");
database.RunCommnad(new CommandDocument("repairDatabase", true));
しかし、これは機能します:
database.RunCommnad(new CommandDocument("repairDatabase", 1));
これが懸念される場合は、サーバーに対して JIRA を報告できます。
database.RunCommand
メソッドがオーバーロードされています。次のように、コマンドの名前である文字列を取ることもできます。
database.RunCommand("repairDatabase")
また、CommandResult
オブジェクトを返します。