Cara yang baik untuk menentukan cara menggunakan perintah shell MongoDB adalah dengan mengetikkan perintah tanpa tanda kurung ke dalam shell dan alih-alih menjalankannya akan mencetak kode sumber untuk perintah tersebut. Jadi jika Anda menjalankan
ShardingTest
pada prompt perintah Anda akan melihat semua kode sumber. Sekitar baris 30 Anda akan melihat komentar ini:
// Allow specifying options like :
// { mongos : [ { noprealloc : "" } ], config : [ { smallfiles : "" } ], shards : { rs : true, d : true } }
yang memberi Anda sintaks yang benar untuk meneruskan parameter konfigurasi untuk mongos, config, dan shard (yang berlaku untuk mongod nonreplikaset untuk semua shard). Artinya, alih-alih menentukan nomor untuk pecahan yang Anda berikan dalam suatu objek. Menggali lebih jauh dalam kode:
else if( isObject( numShards ) ){
tempCount = 0;
for( var i in numShards ) {
otherParams[ i ] = numShards[i];
tempCount++;
}
numShards = tempCount;
Ini akan mengambil objek dan menggunakan subdokumen di dalam objek sebagai parameter opsi untuk setiap pecahan. Ini mengarah ke, menggunakan contoh Anda:
cluster = new ShardingTest({shards : {d0:{smallfiles:''}, d1:{smallfiles:''}, d2:{smallfiles:''}}})
yang dari output yang saya lihat adalah memulai pecahan dengan --smallfiles:
shell: started program mongod --port 30000 --dbpath /data/db/test0 --smallfiles --setParameter enableTestCommands=1
shell: started program mongod --port 30001 --dbpath /data/db/test1 --smallfiles --setParameter enableTestCommands=1
shell: started program mongod --port 30002 --dbpath /data/db/test2 --smallfiles --setParameter enableTestCommands=1
Atau, karena Anda sekarang memiliki kode sumber di depan Anda, Anda dapat memodifikasi javascript untuk meneruskan file kecil secara default.