【问题标题】:MongoDB db.runCommand() from C#来自 C# 的 MongoDB db.runCommand()
【发布时间】:2023-03-13 06:48:01
【问题描述】:

您好,我正在使用 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);

【问题讨论】:

    标签: c# .net mongodb sharding


    【解决方案1】:

    您需要检查 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2013-05-14
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多