有没有办法从C#驱动程序调用MongoDB的db.repairDatabase()函数?
我能够压缩集合:
database.RunCommand(new CommandDocument("compact","collectionname"));
但我无法调用repairDatabase。
答案 0 :(得分:1)
database.RunCommand
方法已超载。它也可以使用一个字符串作为命令的名称,如下所示:
database.RunCommand("repairDatabase")
它还会返回CommandResult
个对象。
答案 1 :(得分:1)
为了回应您的评论,您收到了“错误选项”消息的异常,事实证明服务器对于您是使用1还是true作为repairDatabase字段的值是挑剔的。以下两个是等效的,都失败了,因为服务器不喜欢“true”而不是“1”:
database.RunCommand("repairDatabase");
database.RunCommnad(new CommandDocument("repairDatabase", true));
但这有效:
database.RunCommnad(new CommandDocument("repairDatabase", 1));
如果这涉及到您,可以向服务器报告JIRA: