2017-10-17 23 views
0

有人能給我一個使用RunCommand方法的例子,它只需要一個在MongoDB .NET驅動程序中可用的字符串參數(稱爲CommandName)?我知道有一個重載的RunCommand方法,它將一個對象引用(我認爲是一個CommandDocument對象)作爲參數,但我寧願不使用它。c#MongoDB RunCommand

我無法獲得CommandName的語法權限。提前致謝!

回答

0

如果您正在使用最近的一些官方的C#的驅動程序,「真正的」 string根據你指的是(CommandResult RunCommand(string commandName))版本的版本僅遺留驅動組件的一部分(檢查命名空間)。因此我不推薦使用它。

「官方」界面目前看起來是這樣的:

TResult RunCommand<TResult>(Command<TResult> command, /* and some additional optional parameters */) 

而且因爲C#驅動程序在很大程度上依賴於隱式類型轉換,也就是一個從string(和BsonDocument)到相應的子類型的Command<TResult>JsonCommand<TResult>BsonDocumentCommand<TResult>)。因此,您也可以有效地將string傳遞給上述新的RunCommand()方法。

因此,您可以編寫以下行的任一兩者做同樣的事情:

RunCommand<BsonDocument>("{count: \"collection_name\"}") 
RunCommand<BsonDocument>(new BsonDocument("count", "collection_name"))