3

C# ドライバーから MongoDB の db.repairDatabase() 関数を呼び出す方法はありますか?

コレクションを圧縮できます:

database.RunCommand(new CommandDocument("compact","collectionname"));

しかし、私はrepairDatabaseを呼び出すことができません。

4

2 に答える 2

1

「悪いオプション」というメッセージで例外が発生したというコメントに応えて、repairDatabase フィールドの値として 1 を使用するか true を使用するかについて、サーバーがうるさいことがわかりました。次の 2 つは同等であり、サーバーが「1」ではなく「true」を好まないため、どちらも失敗します。

database.RunCommand("repairDatabase");
database.RunCommnad(new CommandDocument("repairDatabase", true));

しかし、これは機能します:

database.RunCommnad(new CommandDocument("repairDatabase", 1));

これが懸念される場合は、サーバーに対して JIRA を報告できます。

https://jira.mongodb.org/browse/SERVER

于 2012-05-03T06:12:11.657 に答える
1

database.RunCommandメソッドがオーバーロードされています。次のように、コマンドの名前である文字列を取ることもできます。

database.RunCommand("repairDatabase")

また、CommandResultオブジェクトを返します。

于 2012-05-02T18:08:23.243 に答える