mongodb - shardsvr - ¿Cómo cambiar la clave del fragmento?
sharding wow (4)
Sé que es imposible cambiar la clave del fragmento. Pero, cuando configuro la clave de fragmento incorrecta, ¿Cómo cambiar eso?
Es muy simple, use remove + insert en lugar de actualizar.
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!
Gracias por tu proceso
Estoy trabajando con MongoDB 3.0 y:
- mongoimport no es la herramienta para importar db dumping con mongodump.
- Es mongorestore que funciona bien con exactamente los mismos argumentos
Saludos
recogida de basura
mongodump --host <hostname> --port <port> --collection <collection_name> --db <db_name>
abra mongos y suelte la base de datos o la colección (si tiene más de 1 colección)
mongo --host <hostname> --port <port>
show dbs
use <db_name>
db.dropDatabase() //it''s only if you hade ONE database in db
exit
importar base de datos
mongorestore --host <hostname> --port <port> --collection <collection_name> --db <db_name> <path to <collection_name>.bson>
mongos abiertos y fragmentos
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>)
algo así. ps Debes tener índice en la colección para la clave de fragmento. Búsqueda: "asegurarIndex ()"
volcar la colección que ha fragmentado ... importarla de nuevo ... establecer la nueva clave de fragmento.