Votre syntaxe ici est fondamentalement correcte, mais votre exécution générale était erronée et vous auriez dû "séparer" l'action "upsert" des autres modifications. Sinon, ceux-ci "clasheront" et produiront une erreur lorsqu'un "upsert" se produit :
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);
});
});
Assurez-vous que votre sails-mongo est une dernière version prenant en charge les opérations en bloc correctement grâce à l'inclusion d'un pilote natif de nœud récent. Le plus récent prend en charge le pilote v2, ce qui est bien pour cela.