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

Làm cách nào để tôi có thể nâng cấp nhiều đối tượng với MongoDB &Node.js?

Sử dụng BulkWrite API để thực hiện cập nhật:

var bulkUpdateOps = genres.map(function(doc) {
    return {
        "updateOne": {
            "filter": { "_id": doc.id },
            "update": { "$set": { "name": doc.name } },
            "upsert": true
        }
    };
});

db.collection('genres').bulkWrite(bulkUpdateOps, function(err, r) {
    // do something with result
})

Nếu bạn đang xử lý các mảng lớn hơn, tức là> 1000 thì hãy cân nhắc gửi các lần ghi tới máy chủ theo lô 500, điều này mang lại cho bạn hiệu suất tốt hơn vì bạn không gửi mọi yêu cầu đến máy chủ, chỉ một lần trong mỗi 500 yêu cầu:

var bulkUpdateOps = [],
    counter = 0;

genres.forEach(function(doc) {
    bulkUpdateOps.push({
        "updateOne": {
            "filter": { "_id": doc.id },
            "update": { "$set": { "name": doc.name } },
            "upsert": true
        }
    });
    counter++;

    if (counter % 500 == 0) {
        db.collection('genres').bulkWrite(bulkUpdateOps, function(err, r) {
            // do something with result
        });
        bulkUpdateOps = [];
    }
})

if (counter % 500 != 0) {
    db.collection('genres').bulkWrite(bulkUpdateOps, function(err, r) {
        // do something with the result
    });
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách cập nhật trường đối tượng trong mảng với Mongoose

  2. Làm cách nào để thực hiện các phép nối lồng nhau (tham gia 3 hoặc nhiều bộ sưu tập) trong một đường dẫn tổng hợp MongoDB?

  3. MongoDB $ mẫu

  4. Không tìm thấy lớp 'MongoClient'

  5. Spring Boot thiết lập kho lưu trữ MongoDB