Skip to content

Instantly share code, notes, and snippets.

@FrancescaK
Created March 6, 2014 01:51
Show Gist options
  • Save FrancescaK/9380621 to your computer and use it in GitHub Desktop.
Save FrancescaK/9380621 to your computer and use it in GitHub Desktop.
STEP bring the shard key to the top level
var cursor = db.messages.find({},{_id:1, 'headers.Date':1})
while(cursor.hasNext()){
var doc = cursor.next();
var id = doc._id;
var dt = doc.headers.Date;
db.messages.update({_id:id},{$set:{date:dt},$unset:{'headers.Date':1}})
}
sh.getBalancerState()
//true
// stop the balancer
sh.setBalancerState(false)
db.messages.ensureIndex({date:1})
sh.shardCollection('enron.messages',{date:1})
mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 3,
"minCompatibleVersion" : 3,
"currentVersion" : 4,
"clusterId" : ObjectId("5314f1487abd6cb2803696d6")
}
shards:
{ "_id" : "shard0000", "host" : "Rohit-MacBook-Pro.local:30000", "tags" : [ "current" ] }
{ "_id" : "shard0001", "host" : "Rohit-MacBook-Pro.local:30001", "tags" : [ "archive" ] }
{ "_id" : "shard0002", "host" : "Rohit-MacBook-Pro.local:30002", "tags" : [ "archive" ] }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "test", "partitioned" : false, "primary" : "shard0000" }
{ "_id" : "enron", "partitioned" : true, "primary" : "shard0000" }
enron.messages
shard key: { "date" : 1 }
chunks:
shard0000 13
{ "date" : { "$minKey" : 1 } } -->> { "date" : ISODate("2001-02-16T10:55:00Z") } on : shard0000 Timestamp(1, 0)
{ "date" : ISODate("2001-02-16T10:55:00Z") } -->> { "date" : ISODate("2001-03-06T10:04:00Z") } on : shard0000 Timestamp(1, 1)
{ "date" : ISODate("2001-03-06T10:04:00Z") } -->> { "date" : ISODate("2001-03-20T22:12:00Z") } on : shard0000 Timestamp(1, 2)
{ "date" : ISODate("2001-03-20T22:12:00Z") } -->> { "date" : ISODate("2001-04-03T13:37:14Z") } on : shard0000 Timestamp(1, 3)
{ "date" : ISODate("2001-04-03T13:37:14Z") } -->> { "date" : ISODate("2001-04-17T13:50:16Z") } on : shard0000 Timestamp(1, 4)
{ "date" : ISODate("2001-04-17T13:50:16Z") } -->> { "date" : ISODate("2001-04-27T16:29:00Z") } on : shard0000 Timestamp(1, 5)
{ "date" : ISODate("2001-04-27T16:29:00Z") } -->> { "date" : ISODate("2001-05-09T12:27:00Z") } on : shard0000 Timestamp(1, 6)
{ "date" : ISODate("2001-05-09T12:27:00Z") } -->> { "date" : ISODate("2001-05-18T07:46:00Z") } on : shard0000 Timestamp(1, 7)
{ "date" : ISODate("2001-05-18T07:46:00Z") } -->> { "date" : ISODate("2001-05-30T19:21:00Z") } on : shard0000 Timestamp(1, 8)
{ "date" : ISODate("2001-05-30T19:21:00Z") } -->> { "date" : ISODate("2001-06-08T12:49:56Z") } on : shard0000 Timestamp(1, 9)
{ "date" : ISODate("2001-06-08T12:49:56Z") } -->> { "date" : ISODate("2001-07-12T20:25:00Z") } on : shard0000 Timestamp(1, 10)
{ "date" : ISODate("2001-07-12T20:25:00Z") } -->> { "date" : ISODate("2001-08-20T19:34:00Z") } on : shard0000 Timestamp(1, 11)
{ "date" : ISODate("2001-08-20T19:34:00Z") } -->> { "date" : { "$maxKey" : 1 } } on : shard0000 Timestamp(1, 12)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment