2012-05-02 90 views
3

有沒有一種方法來調用MongoDB的db.repairDatabase從C#驅動程序()函數?C#相當於db.repairDatabase()

我能夠緊湊型集合:

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

但我不設法打電話repairDatabase。

+0

你可以請求服務器和驅動程序版本添加到這個問題? –

回答

1

在回答您的意見,你有消息「壞的選擇」的例外,事實證明,該服務器是挑剔的您是否使用1或真作爲repairDatabase字段的值。下面的兩個是等價的,都失敗,因爲服務器不喜歡「真」,而不是「1」:

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

但這個工程:

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

你可以對服務器報告JIRA如果這涉及到你:

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

+0

大,即做到了。謝謝! –

1

database.RunCommand方法過載。它也可以採取一個字符串,它是命令的名稱,具體如下:

database.RunCommand("repairDatabase") 

它還返回CommandResult對象。

+0

我試過了,並得到了以下異常:命令「repairDatabase」失敗:錯誤的選項(響應:{「ERRMSG」:「壞的選擇」,「確定」:0.0}) –