我正在尝试基于分片键的分片收集:查看帮助,我发现我可以使用sh.shardCollection("database.collection", myKey)完成此操作
但是当我这样做的时候,我会收到这样的信息
{ "ok" : 0, "errmsg" : "sharding not enabled for db" }我启动了mongod --configsvr和mongod --shardsvr,所以我认为我已经启用了分片。你知道我该怎么做吗?
发布于 2013-11-12 09:08:06
实际上,一切都很简单。所有你需要做的就是为你的数据库启用分片(是的,它是一种写在错误msg中的)。
您可以使用sh.enableSharding(database)实现这一点
要查看用于分片的命令,您可以执行sh.help(),这将输出命令列表及其描述。在那里你可以找到这个enableSharding。
还要记住,在进行分片之前,你的myKey上需要有indeces (否则你会收到一些关于indeces的错误)。因此,如果您尚未执行此操作-请在使用db.collection.ensureIndex(myKey)之前创建它们
发布于 2019-10-11 06:19:51
例如,这将向生成的_id字段添加一个散列碎片索引和碎片键-不建议使用这个,这只是一个如何启用分片的示例
sh.enableSharding("mydatabase")
use mydatabase
var shardKey = { "_id": "hashed" }
db.customers.createIndex(shardKey)
sh.shardCollection( "mydatabase.customers", shardKey)https://stackoverflow.com/questions/19918956
复制相似问题