MongoDB शेल कमांड का उपयोग करने का तरीका निर्धारित करने का एक अच्छा तरीका यह है कि कमांड को बिना कोष्ठक के शेल में टाइप किया जाए और इसे चलाने के बजाय कमांड के लिए सोर्स कोड प्रिंट किया जाएगा। तो अगर आप दौड़ते हैं
ShardingTest
कमांड प्रॉम्प्ट पर आप सभी स्रोत कोड देखेंगे। लाइन 30 के आसपास आपको यह टिप्पणी दिखाई देगी:
// Allow specifying options like :
// { mongos : [ { noprealloc : "" } ], config : [ { smallfiles : "" } ], shards : { rs : true, d : true } }
जो आपको mongos, config और shards (जो सभी shards के लिए गैर प्रतिकृति mongods पर लागू होता है) के लिए कॉन्फ़िगरेशन पैरामीटर पास करने के लिए सही सिंटैक्स देता है। यानी, आप किसी ऑब्जेक्ट में पास होने वाले शार्क के लिए एक संख्या निर्दिष्ट करने के बजाय। कोड में और खुदाई करना:
else if( isObject( numShards ) ){
tempCount = 0;
for( var i in numShards ) {
otherParams[ i ] = numShards[i];
tempCount++;
}
numShards = tempCount;
यह एक वस्तु लेगा और प्रत्येक शार्ड के विकल्प पैरामीटर के रूप में वस्तु के भीतर उप-दस्तावेजों का उपयोग करेगा। यह आपके उदाहरण का उपयोग करने की ओर ले जाता है:
cluster = new ShardingTest({shards : {d0:{smallfiles:''}, d1:{smallfiles:''}, d2:{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
वैकल्पिक रूप से, चूंकि अब आपके सामने स्रोत कोड है, आप डिफ़ॉल्ट रूप से छोटी फ़ाइलों में पास करने के लिए जावास्क्रिप्ट को संशोधित कर सकते हैं।