MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Inserindo uma grande matriz de objetos no mongodb de nodejs


Você pode usar inserções em massa.

Existem dois tipos de operações em massa:
  1. Operações em massa encomendadas. Essas operações executam todas as operações em ordem e eliminam o erro no primeiro erro de gravação.
  2. Operações em massa não ordenadas. Essas operações executam todas as operações em paralelo e agregam todos os erros. As operações em massa não ordenadas não garantem a ordem de execução.

Então você pode fazer algo assim:
var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://myserver:27017/test", function(err, db) {
    // Get the collection
    var col = db.collection('myColl');

    // Initialize the Ordered Batch
    // You can use initializeUnorderedBulkOp to initialize Unordered Batch
    var batch = col.initializeOrderedBulkOp();

    for (var i = 0; i < sizeOfResult; ++i) {
      var newKey = {
          field_1: result[i][1],
          field_2: result[i][2],
          field_3: result[i][3]
      };
      batch.insert(newKey);
    }

    // Execute the operations
    batch.execute(function(err, result) {
      console.dir(err);
      console.dir(result);
      db.close();
    });
});