sql >> データベース >  >> NoSQL >> MongoDB

ShardingTestでsmallfilesを設定します

    MongoDBシェルコマンドの使用方法を判断する良い方法は、シェルに括弧なしでコマンドを入力することです。実行する代わりに、コマンドのソースコードが出力されます。したがって、

    を実行すると
    ShardingTest
    

    コマンドプロンプトで、すべてのソースコードが表示されます。 30行目あたりに次のコメントが表示されます:

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

    これにより、mongos、config、および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:''}}})
    

    出力から、シャードを--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
    

    または、ソースコードが目の前にあるので、デフォルトで小さなファイルを渡すようにJavaScriptを変更できます。



    1. forEachはmongodbのすべてのコレクションを反復処理しません

    2. MongoDB-ネストされたドキュメントにCSVをインポートします

    3. 複数のパスが一致する場合、Expressはどのルーターパスを使用するかをどのように知るのですか?

    4. MongoDBでインデックスを使用しているクエリを確認するにはどうすればよいですか?