Sintaks Anda di sini pada dasarnya benar, tetapi eksekusi umum Anda salah dan Anda seharusnya "memisahkan" tindakan "upsert" dari modifikasi lainnya. Jika tidak, ini akan "berbenturan" dan menghasilkan kesalahan saat "upsert" terjadi:
LineupPointsRecord.native(function (err,collection) {
var bulk = collection.initializeOrderedBulkOp();
// Match and update only. Do not attempt upsert
bulk.find({
"teamId": lineUpPointsGeneralRecord.teamId,
"round": 0
}).updateOne({
"$inc": { "lfPoints": roundPoints },
"$push": { "roundPoints": roundPoints }
});
// Attempt upsert with $setOnInsert only
bulk.find({
"teamId": lineUpPointsGeneralRecord.teamId,
"round": 0
}).upsert().updateOne({
"$setOnInsert": lineUpPointsGeneralRecord
});
bulk.execute(function (err,updateResult) {
sails.log.debug(err,updateResult);
});
});
Pastikan sails-mongo Anda adalah versi terbaru yang mendukung operasi Massal dengan benar menjadi penyertaan driver asli node baru-baru ini. Yang terbaru mendukung driver v2, yang bagus untuk ini.