我知道改变分片密钥是不可能的。但是,当我设置了错误的分片密钥时,该如何更改呢?
发布于 2011-07-09 00:16:43
转储您切分的收藏..再次导入..设置新的分片关键点。
发布于 2014-09-09 16:38:41
转储收集
mongodump --host <hostname> --port <port> --collection <collection_name> --db <db_name>
打开mongos并删除数据库或集合(如果您有多个集合)
mongo --host <hostname> --port <port>
show dbs
use <db_name>
db.dropDatabase() //it's only if you hade ONE database in db
exit
导入数据库
mongorestore --host <hostname> --port <port> --collection <collection_name> --db <db_name> <path to <collection_name>.bson>
开放mongos和分片
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()“
发布于 2017-09-18 18:06:12
这很简单,使用remove + insert而不是update。
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!
https://stackoverflow.com/questions/6622635
复制相似问题