2017-11-29 9 views
-1

私はバルクアップサートを使用してノードで多くの挿入を作ってるんでバルクアップサートのために、私は以下のコードの説明を与える、と私は関連リンクbulk upsertからいくつかのコードの参照を取得し、これはコードマングース

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

mongoose.connect('mongodb://localhost/test'); 

var sampleSchema = new Schema({},{ "strict": false }); 

var Sample = mongoose.model("Sample", sampleSchema, "sample"); 

mongoose.connection.on("open", function(err,conn) { 

    var bulk = Sample.collection.initializeOrderedBulkOp(); 
    var counter = 0; 

    // representing a long loop 
    for (var x = 0; x < 100000; x++) { 

     bulk.find(/* some search */).upsert().updateOne(
      /* update conditions */ 
     }); 
     counter++; 

     if (counter % 1000 == 0) 
      bulk.execute(function(err,result) {    
       bulk = Sample.collection.initializeOrderedBulkOp(); 
      }); 
    } 

    if (counter % 1000 != 0) 
     bulk.execute(function(err,result) { 
      // maybe do something with result 
     }); 

}); 
です

やコード、右は何の問題もありませんが、私はまだ、この条件の目的が何であるかを

if (counter % 1000 == 0) 
      bulk.execute(function(err,result) {    
       bulk = Sample.collection.initializeOrderedBulkOp(); 
      }); 

下記の一部のコードについて理解していませんか? if (counter % 1000 == 0)

答えて

0

counterが1,000の倍数であるかどうかを評価します。より正確には、counter/10000に等しいかどうかを評価します。 Arithmetic Operatorsを参照してください。

このスクリプトはバルク操作を実行しているため、1,000のバッチしか実行していません。この条件はそれを強制する。

+0

助けをお寄せいただきありがとうございます – Omlegron

+0

@Omlegronそれがあなたの問題を解決した場合、他の人も同様に恩恵を受けられるように投票して受け入れることをお勧めします。 –