来自C#的MongoDB db.runCommand()

时间:2016-07-28 19:26:59

标签: c# .net mongodb sharding

您好我正在使用C#和MongoDB官方驱动程序v2.2.4,我想在管理数据库上运行db.runCommand()。

到目前为止,我有这个,我能够连接到管理数据库,但db.runCommand给我这个错误“MongoDB.Bson.dll中发生类型'System.FormatException'未处理的异常附加信息:JSON阅读器期待一个值,但发现'db'。“

MongoClient client = new MongoClient();
database = client.GetDatabase("admin");
var collection = database.GetCollection<BsonDocument>("test");
var commandResult = database.RunCommand<string>(@"db.createCollection(test1)");

我解决了这个测试后,我想从C#运行这个命令但是我被卡住了。

db.runCommand( { addshard : “localhost:10001”, name : “shard10001” } );

任何人都可以解决这个问题并为我提供一个很好的解释和示例。经过一些搜索我尝试过这段代码似乎更有意义,但仍然出现错误。  “Additional information: Command addshard failed: no such command: 'addshard', bad cmd: '{ addshard: "192.168.1.4:27017", name: "shard1" }'."

请问我做错了什么!感谢。

    var addShardCommand = new BsonDocument {
        { "addshard", "192.168.1.4:27017"},
        { "name", "shard1" }
    };
    var addShardResult = database.RunCommand<BsonDocument>(addShardCommand);

1 个答案:

答案 0 :(得分:0)

您需要检查 mongodb 中正确的命令是什么。就像有时名称需要 Document 对象而不仅仅是字符串。

我正在使用这样的东西。检查这是否有帮助

var name = new BsonDocument { { "name", "regions" } };
var command = new BsonDocument { { "listCollections", 1 }, { "filter", name } };
var result = Database.RunCommand<BsonDocument>(command);
var k = result.ToJson();
            

这里的名称又是我从本文档中找到的对象 https://docs.mongodb.com/manual/reference/command/listCollections/

您可以从这里获得更多帮助 https://zetcode.com/csharp/mongodb/