我正在尝试基于分片键进行分片收集:
寻求帮助我看到我可以做到这一点
sh.shardCollection("database.collection", myKey)
但是当我这样做时,我会收到消息
{ "ok" : 0, "errmsg" : "sharding not enabled for db" }
我开始mongod --configsvr
和mongod --shardsvr
,所以我认为我已经启用了分片。知道我该怎么办?
答案 0 :(得分:2)
实际上一切都很简单。您需要做的就是为数据库启用分片(是的,它是在错误信息中编写的)。
您可以使用sh.enableSharding(database)
要查看用于分片的命令,您可以执行sh.help()
,这将输出您的命令列表及其说明。在那里你可以找到这个enableSharding。
另外请记住,在进行分片之前,你需要在myKey上使用indeces(否则你会收到一些关于indeces的错误)。因此,如果您还没有这样做 - 请先使用db.collection.ensureIndex(myKey)
答案 1 :(得分:0)
例如,这会向生成的_id字段中添加哈希分片索引和分片键-不建议使用此方法,这只是如何启用分片的一个示例
sh.enableSharding("mydatabase")
use mydatabase
var shardKey = { "_id": "hashed" }
db.customers.createIndex(shardKey)
sh.shardCollection( "mydatabase.customers", shardKey)