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

MongoDB C# Driver: Execute Database Method through the SDK?

我希望能够使用 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: Command version failed: no such command: 'version', bad cmd: '{ version: 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 支持的操作?

您 link 的 shell 数据库方法与通过 Database.RunCommand 可用的基础数据库命令之间并不总是直接映射。列出了可用的命令 here, and to get the server version you could use the serverStatus command:

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