var s = new ShardingTest({ name: "find_and_modify_sharded_2", shards: 2, mongos: 1, other: { chunkSize: 1 }}); s.adminCommand( { enablesharding : "test" } ); var db = s.getDB( "test" ); s.ensurePrimaryShard('test', 'shard0001'); var primary = s.getServer( "test" ).getDB( "test" ); var secondary = s.getOther( primary ).getDB( "test" ); var n = 100; var collection = "stuff"; var minChunks = 2; var col_update = collection + '_col_update'; var col_update_upsert = col_update + '_upsert'; var col_fam = collection + '_col_fam'; var col_fam_upsert = col_fam + '_upsert'; var big = "x"; print("---------- Creating large payload..."); for(var i=0;i<15;i++) { big += big; } print("---------- Done."); // drop the collection db[col_update].drop(); db[col_update_upsert].drop(); db[col_fam].drop(); db[col_fam_upsert].drop(); // shard the collection on _id s.adminCommand({shardcollection: 'test.' + col_update, key: {_id: 1}}); s.adminCommand({shardcollection: 'test.' + col_update_upsert, key: {_id: 1}}); s.adminCommand({shardcollection: 'test.' + col_fam, key: {_id: 1}}); s.adminCommand({shardcollection: 'test.' + col_fam_upsert, key: {_id: 1}}); // update via findAndModify function via_fam() { for (var i=0; i