Su sintaxis aquí es básicamente correcta, pero su ejecución general fue incorrecta y debería haber "separado" la acción "upsert" de las otras modificaciones. De lo contrario, estos "chocarán" y producirán un error cuando se produzca un "upsert":
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);
});
});
Asegúrese de que su sails-mongo es una versión más reciente que admite correctamente las operaciones masivas gracias a la inclusión de un controlador nativo de nodo reciente. El más reciente es compatible con el controlador v2, lo cual está bien para esto.