MongoDB C#驱动程序:通过SDK执行数据库方法?

时间:2016-05-22 13:52:58

标签: mongodb mongodb-query mongodb-.net-driver

我希望能够使用C#SDK(2.2.4)执行database method。以db.version()为例。

我试图和Database.RunCommand一起玩,但没有运气:

var command = new BsonDocumentCommand<BsonDocument>(new BsonDocument
{
    { "version", 1 }
});

var versionResult = Database.RunCommand(command);

例外:

  

MongoDB.Driver.MongoCommandException:命令版本失败:没有这样的   命令:&#39;版本&#39;,坏cmd:&#39; {版本:1}&#39;。

2 个答案:

答案 0 :(得分:2)

您链接到的shell数据库方法与通过Database.RunCommand可用的基础数据库命令之间并不总是直接映射。可用命令列在here中,要获取服务器版本,可以使用serverStatus命令:

var version = db.RunCommand<dynamic>(new BsonDocument("serverStatus", 1)).version;

答案 1 :(得分:1)

我可以使用上述方法获取dbstats,但不能使用版本。 (在mongo shell和.net中)

但是如果我试图在mongo shell中以这种方式获得版本,那么我会得到同样的错误

db.runCommand({version:1})
{
    "ok" : 0,
    "errmsg" : "no such command: 'version', bad cmd: '{ version: 1.0 }'",
    "code" : 59
}

获得版本似乎有不同的方式?因为runCommand支持Mongo shell支持的操作?