sql >> Base de Datos >  >> NoSQL >> MongoDB

Insertar una gran variedad de objetos en mongodb desde nodejs

Puede utilizar inserciones masivas.

Hay dos tipos de operaciones masivas:

  1. Operaciones masivas ordenadas. Estas operaciones ejecutan todas las operaciones en orden y fallan en el primer error de escritura.
  2. Operaciones masivas no ordenadas. Estas operaciones ejecutan todas las operaciones en paralelo y agregan todos los errores. Las operaciones masivas no ordenadas no garantizan el orden de ejecución.

Así que puedes hacer algo como esto:

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();
    });
});