sql >> Databasteknik >  >> NoSQL >> MongoDB

Ställ in små filer i ShardingTest

Ett bra sätt att avgöra hur man använder ett MongoDB-skalkommando är att skriva kommandot utan parenteser i skalet och istället för att köra kommer det att skriva ut källkoden för kommandot. Så om du kör

ShardingTest

vid kommandotolken ser du all källkod. Runt rad 30 kommer du att se denna kommentar:

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

vilket ger dig rätt syntax för att skicka konfigurationsparametrar för mongos, config och shards (som gäller för mongods som inte replikeras för alla shards). Det vill säga, istället för att ange ett nummer för skärvor skickar du i ett objekt. Gräver vidare i koden:

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

            numShards = tempCount;

Detta tar ett objekt och använder underdokumenten i objektet som alternativparametrar för varje skärva. Detta leder till, med ditt exempel:

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

som från utgången jag kan se är att starta skärvorna med --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

Alternativt, eftersom du nu har källkoden framför dig, kan du modifiera javascriptet så att det skickas i små filer som standard.



  1. Spring data mongodb tar bort en egenskap från ett dokument med MongoTemplate

  2. java spring MappingJacksonJsonView gör inte toString på mongodb ObjectId

  3. mongoDB. läs, sök tidsstämpel baserat på oplog

  4. Hur man ställer in en Docker redis-behållare med ssl