2017-11-29 7 views
-1

내가 대량 upsert를 사용하여 노드에서 많은 삽입을 만들고있어에서 대량 upsert을 위해, 나에게 아래의 코드에 대한 설명을주고, 나는 관련 링크 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 그 것이 문제를 해결 한 경우 다른 사람들도 혜택을 볼 수 있도록 투표하고 수락 하시겠습니까? –