MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Insertion d'un grand tableau d'objets dans mongodb à partir de nodejs

Vous pouvez utiliser des inserts en vrac.

Il existe deux types d'opérations groupées :

  1. Opérations groupées commandées. Ces opérations exécutent toutes les opérations dans l'ordre et génèrent une erreur à la première erreur d'écriture.
  2. Opérations groupées non ordonnées. Ces opérations exécutent toutes les opérations en parallèle et agrègent toutes les erreurs. Les opérations en masse non ordonnées ne garantissent pas l'ordre d'exécution.

Vous pouvez donc faire quelque chose comme ceci :

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