Sebaiknya lakukan pembaruan ini menggunakan bulkWrite
API. Perhatikan contoh berikut untuk dua dokumen di atas:
var bulkUpdateOps = [
{
"updateOne": {
"filter": { "reference": 10 },
"update": { "$push": { "history": history1 } }
}
},
{
"updateOne": {
"filter": { "reference": 20 },
"update": { "$push": { "history": history2 } }
}
}
];
mongo.financeCollection.bulkWrite(bulkUpdateOps,
{"ordered": true, "w": 1}, function(err, result) {
// do something with result
callback(err);
}
{"ordered": true, "w": 1}
memastikan bahwa dokumen akan diperbarui di server secara serial, dalam urutan yang diberikan dan dengan demikian jika terjadi kesalahan, semua pembaruan yang tersisa dibatalkan. {"w": 1}
opsi menentukan masalah penulisan dengan 1 sebagai pengakuan permintaan bahwa operasi tulis telah disebarkan ke mongod mandiri atau primer dalam set replika.
Untuk MongoDB >= 2.6
dan <= 3.0
, gunakan API Operasi Massal
sebagai berikut:
var bulkUpdateOps = mongo.financeCollection.initializeOrderedBulkOp();
bulkUpdateOps
.find({ "reference": 10 })
.updateOne({
"$push": { "history": history1 }
});
bulkUpdateOps
.find({ "reference": 20 })
.updateOne({
"$push": { "history": history2 }
});
bulk.execute(function(err, result){
bulkUpdateOps = mongo.financeCollection.initializeOrderedBulkOp();
// do something with result
callback(err);
});