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;
我希望能够使用 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;