Ihre Syntax hier ist grundsätzlich korrekt, aber Ihre allgemeine Ausführung war falsch und Sie hätten die Aktion "Upsert" von den anderen Änderungen "trennen" sollen. Andernfalls "kollidieren" diese und erzeugen einen Fehler, wenn ein "Upsert" auftritt:
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);
});
});
Stellen Sie sicher, dass Ihr sails-mongo ist eine neueste Version, die die Bulk-Operationen ordnungsgemäß unterstützt, da ein neuer nativer Knotentreiber enthalten ist. Die neueste unterstützt den v2-Treiber, was dafür in Ordnung ist.