首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改分片密钥

如何更改分片密钥
EN

Stack Overflow用户
提问于 2011-07-08 17:40:47
回答 3查看 9.9K关注 0票数 19

我知道改变分片密钥是不可能的。但是,当我设置了错误的分片密钥时,该如何更改呢?

EN

回答 3

Stack Overflow用户

发布于 2011-07-09 00:16:43

转储您切分的收藏..再次导入..设置新的分片关键点。

票数 23
EN

Stack Overflow用户

发布于 2014-09-09 16:38:41

转储收集

代码语言:javascript
复制
mongodump --host <hostname> --port <port> --collection <collection_name> --db <db_name>

打开mongos并删除数据库或集合(如果您有多个集合)

代码语言:javascript
复制
mongo --host <hostname> --port <port>
show dbs
use <db_name>
db.dropDatabase() //it's only if you hade ONE database in db
exit

导入数据库

代码语言:javascript
复制
mongorestore --host <hostname> --port <port> --collection <collection_name> --db <db_name> <path to <collection_name>.bson>

开放mongos和分片

代码语言:javascript
复制
mongo --host <hostname> --port <port>
sh.status() (only to understand what is happen)
sh.enableSharding("<db_name>")
sh.shardCollection("<db_name>.<collection_name>",<shard key>,<option>)

就像那个附言。您必须在集合中具有分片键的索引。搜索:"ensureIndex()“

票数 12
EN

Stack Overflow用户

发布于 2017-09-18 18:06:12

这很简单,使用remove + insert而不是update。

代码语言:javascript
复制
var buf = db.col.findOne({'_id': ObjectId(<id>)});
buf['key'] = 'new key';
db.col.remove({'_id': ObjectId(<id>)});
db.col.insert(buf); //_id does not change!
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6622635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档