diff options
Diffstat (limited to 'jstests/sharding/findandmodify1.js')
-rw-r--r-- | jstests/sharding/findandmodify1.js | 92 |
1 files changed, 47 insertions, 45 deletions
diff --git a/jstests/sharding/findandmodify1.js b/jstests/sharding/findandmodify1.js index 14b5786a379..08eb6602370 100644 --- a/jstests/sharding/findandmodify1.js +++ b/jstests/sharding/findandmodify1.js @@ -1,64 +1,66 @@ (function() { -var s = new ShardingTest({ name: "find_and_modify_sharded", shards: 2 }); + var s = new ShardingTest({name: "find_and_modify_sharded", shards: 2}); -s.adminCommand( { enablesharding : "test" } ); -db = s.getDB( "test" ); -s.ensurePrimaryShard('test', 'shard0001'); -primary = s.getPrimaryShard( "test" ).getDB( "test" ); -secondary = s.getOther( primary ).getDB( "test" ); + s.adminCommand({enablesharding: "test"}); + db = s.getDB("test"); + s.ensurePrimaryShard('test', 'shard0001'); + primary = s.getPrimaryShard("test").getDB("test"); + secondary = s.getOther(primary).getDB("test"); -numObjs = 20; + numObjs = 20; -// Turn balancer off - with small numbers of chunks the balancer tries to correct all imbalances, not just < 8 -s.s.getDB( "config" ).settings.update({ _id : "balancer" }, { $set : { stopped : true } }, true ); + // Turn balancer off - with small numbers of chunks the balancer tries to correct all + // imbalances, not just < 8 + s.s.getDB("config").settings.update({_id: "balancer"}, {$set: {stopped: true}}, true); -s.adminCommand( { shardcollection : "test.stuff" , key : {_id:1} } ); + s.adminCommand({shardcollection: "test.stuff", key: {_id: 1}}); -// pre-split the collection so to avoid interference from balancer -s.adminCommand( { split: "test.stuff" , middle : { _id : numObjs/2 } } ); -s.adminCommand( { movechunk : "test.stuff" , find : { _id : numObjs/2 } , to : secondary.getMongo().name } ) ; + // pre-split the collection so to avoid interference from balancer + s.adminCommand({split: "test.stuff", middle: {_id: numObjs / 2}}); + s.adminCommand( + {movechunk: "test.stuff", find: {_id: numObjs / 2}, to: secondary.getMongo().name}); -var bulk = db.stuff.initializeUnorderedBulkOp(); -for (var i=0; i < numObjs; i++){ - bulk.insert({_id: i}); -} -assert.writeOK(bulk.execute()); + var bulk = db.stuff.initializeUnorderedBulkOp(); + for (var i = 0; i < numObjs; i++) { + bulk.insert({_id: i}); + } + assert.writeOK(bulk.execute()); -// put two docs in each chunk (avoid the split in 0, since there are no docs less than 0) -for (var i=2; i < numObjs; i+=2){ - if (i == numObjs/2) - continue; - s.adminCommand( { split: "test.stuff" , middle : {_id: i} } ); -} + // put two docs in each chunk (avoid the split in 0, since there are no docs less than 0) + for (var i = 2; i < numObjs; i += 2) { + if (i == numObjs / 2) + continue; + s.adminCommand({split: "test.stuff", middle: {_id: i}}); + } -s.printChunks(); -assert.eq( numObjs/2, s.config.chunks.count(), "split failed" ); -assert.eq( numObjs/4, s.config.chunks.count({ shard: "shard0000" }) ); -assert.eq( numObjs/4, s.config.chunks.count({ shard: "shard0001" }) ); + s.printChunks(); + assert.eq(numObjs / 2, s.config.chunks.count(), "split failed"); + assert.eq(numObjs / 4, s.config.chunks.count({shard: "shard0000"})); + assert.eq(numObjs / 4, s.config.chunks.count({shard: "shard0001"})); -// update -for (var i=0; i < numObjs; i++){ - assert.eq(db.stuff.count({b:1}), i, "2 A"); + // update + for (var i = 0; i < numObjs; i++) { + assert.eq(db.stuff.count({b: 1}), i, "2 A"); - var out = db.stuff.findAndModify({query: {_id:i, b:null}, update: {$set: {b:1}}}); - assert.eq(out._id, i, "2 E"); + var out = db.stuff.findAndModify({query: {_id: i, b: null}, update: {$set: {b: 1}}}); + assert.eq(out._id, i, "2 E"); - assert.eq(db.stuff.count({b:1}), i+1, "2 B"); -} + assert.eq(db.stuff.count({b: 1}), i + 1, "2 B"); + } -// remove -for (var i=0; i < numObjs; i++){ - assert.eq(db.stuff.count(), numObjs - i, "3 A"); - assert.eq(db.stuff.count({_id: i}), 1, "3 B"); + // remove + for (var i = 0; i < numObjs; i++) { + assert.eq(db.stuff.count(), numObjs - i, "3 A"); + assert.eq(db.stuff.count({_id: i}), 1, "3 B"); - var out = db.stuff.findAndModify({remove: true, query: {_id:i}}); + var out = db.stuff.findAndModify({remove: true, query: {_id: i}}); - assert.eq(db.stuff.count(), numObjs - i - 1, "3 C"); - assert.eq(db.stuff.count({_id: i}), 0, "3 D"); - assert.eq(out._id, i, "3 E"); -} + assert.eq(db.stuff.count(), numObjs - i - 1, "3 C"); + assert.eq(db.stuff.count({_id: i}), 0, "3 D"); + assert.eq(out._id, i, "3 E"); + } -s.stop(); + s.stop(); })(); |