2016-11-17 5 views
0

Я хочу импортировать данные MySQL с некоторыми изменениями в нем. как join и json внутри json. Я могу вставить один за другим. Но это занимает много времени. Я делаю это, следуя приведенному ниже коду. этот код для циклакак навалом вставить с другим ключом в Cochbase и узле js

config.bucket.insert('User|'+page._id, JSON.stringify(page), function(err, res) { 

        if (err) { 
        console.log('User|'+page._id+' operation failed '+ err); 
         return; 
        } 
        console.log('User|'+page._id); 

       }); 

Так что мне нужно. Как сделать объемную вставку с другим ключом в Cochbase и узле js ??

page._id это разные key.I нужно также вставить JSON

ответ

1

Я уверен, что это то, что ваш ищете: https://github.com/couchbaselabs/devguide-examples/blob/master/nodejs/bulkES6.js

function bulkUpdateAsyncPattern(){ 
    return new Promise(
     (resolve, reject) => { 

      var completed = 0; 
      var runFlag = false; 
      var startTime = process.hrtime(); 

      // Function for modify one document, during bulk loop. Notice, 
      // this is only in scope for bulkUpdateAsyncPattern 
      function modifyOne() { 

       // First Check if the bulk pattern loop is done 
       if (completed >= totalDocs && !runFlag) { 
        runFlag = true; 
        var time = process.hrtime(startTime); 
        console.log("===="); 
        console.log(" Bulk Pattern Processing Loop Took: " + parseInt((time[0] * 1000) + 
          (time[1]/1000000)) + " ms for: " + getMultiArray.length + 
         " items"); 
        resolve(); 
       } else { 
        if (completed <= totalDocs) { 

         // Modify One Document 
         bucket.mutateIn('test' + completed, 0, 0) 
         .counter('rev', 1, false) 
         .execute(function(err, res) { 
          if (err) console.log(" Error modifying:", err.message); 

          // This will fire WHEN and only WHEN a callback is received. 
          if (res) { 
           // Increment completed count 
           completed++; 

           // Recursive call to modify 
           modifyOne(); 
          } 
         }); 
        } 
       } 
      } 
      // The loop that sets up a "buffer" of queued operations 
      // This sets up a number of requests always in the buffer waiting to execute 
      for (var i = 0; i < opsGroup; ++i) { 
       modifyOne(); 
      } 
     }); 
} 
+0

Кстати, это не dup [Multiple insert Couchbase with node.js] (http://stackoverflow.com/questions/22817112/multiple-insert-couchbase-with-node-js) по мере изменения API. –

+0

Я делаю это один за другим, но требуется время, если у меня есть данные более 15K. это заняло 30 минут. есть ли другой способ? @Roi Katz –

+0

Вы пытались его выкурить? –