不能 运行 命令如 "shardCollection" 或 "enableSharding"
Cannot run commands like "shardCollection" or "enableSharding"
我继承了一个项目来维护。显然,决定从 CosmosDb 切换到专用 MongoDb。 CI 管道中有一个项目用 collections 播种 mongo 数据库并创建索引。现在它是用这样的命令完成的:
var partition = new Dictionary<string, object> {
{"shardCollection", $"{databaseName}.{collectionName}"},
{ "key", new Dictionary<string, object>() { { $"{indexName}", "hashed" } } }
};
var command = new BsonDocumentCommand<BsonDocument>(partition);
var response = adminDb.RunCommand(command);
这在我的机器上不起作用 - 我得到 Command shardCollection failes: no such command 'shardCollection'.
知道我做错了什么吗?我在其他地方找到了该代码的示例作为工作代码,但我很困惑。
更新 1
在我的 collections 上设置分片之前,我也试过 运行 这个命令:
var shardDbResult = adminDatabase.RunCommand<MongoDB.Bson.BsonDocument>(
new MongoDB.Bson.BsonDocument() {
{ "enableSharding", $"{databaseName}" }
});
但我也遇到了类似的错误Command enableSharding failes: no such command 'enableSharding'
。我什至尝试过 mongosh
:
更新 2
所以最终我认为这可能与我的 MongoDb 安装有关。所以我决定在 docker 中启动一个分片副本集,显然我设法做到了 运行。
现在命令:
db.adminCommand({enableSharding: "<databaseName>"})
工作正常(至少打印报告:ok: 1
)。此命令也可以正常工作:
db.adminCommand({shardCollection: "<databaseName>.<collectionName>", key: {<fieldName>: 1}})
但是问题顶部的代码不断失败并显示相同的消息...
版本:
- OS Windows 10 企业 21H2
- .net 5 (5.0.15)
- MongoDb 5.0
- Mongo.Bson 2.15.0
- Mongo.Driver 2.15.0
- Mongo.Driver核心 nuget 2.15.0
我用分片集群完全错误地设置了我的副本集。一旦我使用了从 部署 mongodb 分片集群的说明,我的代码就开始工作了。
我继承了一个项目来维护。显然,决定从 CosmosDb 切换到专用 MongoDb。 CI 管道中有一个项目用 collections 播种 mongo 数据库并创建索引。现在它是用这样的命令完成的:
var partition = new Dictionary<string, object> {
{"shardCollection", $"{databaseName}.{collectionName}"},
{ "key", new Dictionary<string, object>() { { $"{indexName}", "hashed" } } }
};
var command = new BsonDocumentCommand<BsonDocument>(partition);
var response = adminDb.RunCommand(command);
这在我的机器上不起作用 - 我得到 Command shardCollection failes: no such command 'shardCollection'.
知道我做错了什么吗?我在其他地方找到了该代码的示例作为工作代码,但我很困惑。
更新 1
在我的 collections 上设置分片之前,我也试过 运行 这个命令:
var shardDbResult = adminDatabase.RunCommand<MongoDB.Bson.BsonDocument>(
new MongoDB.Bson.BsonDocument() {
{ "enableSharding", $"{databaseName}" }
});
但我也遇到了类似的错误Command enableSharding failes: no such command 'enableSharding'
。我什至尝试过 mongosh
更新 2
所以最终我认为这可能与我的 MongoDb 安装有关。所以我决定在 docker 中启动一个分片副本集,显然我设法做到了 运行。 现在命令:
db.adminCommand({enableSharding: "<databaseName>"})
工作正常(至少打印报告:ok: 1
)。此命令也可以正常工作:
db.adminCommand({shardCollection: "<databaseName>.<collectionName>", key: {<fieldName>: 1}})
但是问题顶部的代码不断失败并显示相同的消息...
版本:
- OS Windows 10 企业 21H2
- .net 5 (5.0.15)
- MongoDb 5.0
- Mongo.Bson 2.15.0
- Mongo.Driver 2.15.0
- Mongo.Driver核心 nuget 2.15.0
我用分片集群完全错误地设置了我的副本集。一旦我使用了从