MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Legen Sie kleine Dateien in ShardingTest fest

Eine gute Möglichkeit, um festzustellen, wie ein MongoDB-Shell-Befehl verwendet wird, besteht darin, den Befehl ohne die Klammern in die Shell einzugeben und statt ihn auszuführen, den Quellcode für den Befehl zu drucken. Wenn Sie also

ausführen
ShardingTest

An der Eingabeaufforderung sehen Sie den gesamten Quellcode. Etwa in Zeile 30 sehen Sie diesen Kommentar:

    // Allow specifying options like :
    // { mongos : [ { noprealloc : "" } ], config : [ { smallfiles : "" } ], shards : { rs : true, d : true } }

Dadurch erhalten Sie die richtige Syntax zum Übergeben von Konfigurationsparametern für Mongos, Konfigurationen und Shards (die für alle Shards für die Nicht-Replicaset-Mongods gelten). Das heißt, anstatt eine Zahl für Shards anzugeben, übergeben Sie ein Objekt. Weiter im Code graben:

else if( isObject( numShards ) ){
            tempCount = 0;
            for( var i in numShards ) {
                otherParams[ i ] = numShards[i];
                tempCount++;
            }

            numShards = tempCount;

Dies nimmt ein Objekt und verwendet die Unterdokumente innerhalb des Objekts als Optionsparameter für jeden Shard. Dies führt in Ihrem Beispiel zu:

cluster = new ShardingTest({shards : {d0:{smallfiles:''}, d1:{smallfiles:''}, d2:{smallfiles:''}}})

Was ich aus der Ausgabe sehen kann, ist das Starten der Shards mit --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

Da Sie jetzt den Quellcode vor sich haben, könnten Sie alternativ das Javascript ändern, um standardmäßig kleine Dateien zu übergeben.