MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chèn hàng loạt trong MongoDB bằng mongoose

Bạn có thể muốn sử dụng insertMany () tại đây nếu bạn đang sử dụng phiên bản Mongoose mới nhất 4.4.X và cao hơn, về cơ bản sử dụng Model.collection.insertMany () dưới mui xe và trình điều khiển có thể xử lý song song > =1000 tài liệu cho bạn.

myData = [Obj1, Obj2, Obj3.......];
Collection1.insertMany(myData, function(error, docs) {});

hoặc sử dụng Promises để xử lý lỗi tốt hơn

Collection1.insertMany(myData)
    .then(function(docs) {
         // do something with docs
    })
    .catch(function(err) {
        // error handling here
    });

Nó hoạt động bằng cách tạo một loạt tài liệu, gọi .validate () trên chúng song song và sau đó gọi trình điều khiển cơ bản insertMany () trên kết quả của toObject ({virtual:false}); của mỗi tài liệu. không kích hoạt móc lưu trước, nó có hiệu suất tốt hơn vì nó chỉ thực hiện 1 chuyến khứ hồi đến máy chủ thay vì 1 cho mỗi tài liệu.

Đối với các phiên bản Mongoose ~ 3.8.8, ~ 3.8.22, 4.x hỗ trợ Máy chủ MongoDB > =2.6.x , bạn có thể sử dụng API hàng loạt như sau

var bulk = Collection1.collection.initializeOrderedBulkOp(),
    counter = 0;

myData.forEach(function(doc) {
    bulk.insert(doc);

    counter++;
    if (counter % 500 == 0) {
        bulk.execute(function(err, r) {
           // do something with the result
           bulk = Collection1.collection.initializeOrderedBulkOp();
           counter = 0;
        });
    }
});

// Catch any docs in the queue under or over the 500's
if (counter > 0) {
    bulk.execute(function(err,result) {
       // do something with the result here
    });
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gặp lỗi, Lỗi:không thể kết nối với máy chủ 127.0.0.1 shell / mongo.js &khi cố gắng chạy mongodb trên mac osx lion

  2. MongoDB - Lọc nội dung của Mảng nội bộ trong tập kết quả

  3. Nâng cấp mongodb không có tác dụng và vẫn hiển thị phiên bản cũ

  4. Truy vấn danh sách trong mongoengine; chứa so với trong

  5. Không thể kết nối với cơ sở dữ liệu MongoDB 2.0.5 với pymongo 2.2