假设我有以下简单模型:
var Foo = sequelize.define('Foo', {
bar: Sequelize.STRING,
});
数据库中的表Foos
有一条记录:
id bar
--- ---
1 abc
为了更新此记录,我可以执行以下操作:
Foo.findById(1).then(function(foo) {
foo.bar = 'xyz';
foo.save();
});
现在我找到了另一种更新记录的方法,而无需从数据库中找到它:
var foo = Foo.build({ id: 1, bar: 'xyz' });
foo.isNewRecord = false; // makes save use UPDATE instead of INSERT INTO
foo.save();
这对我的用例来说是完美的,但我想知道我是否在破坏时破坏了任何东西。
答案 0 :(得分:1)
build
函数中有一个参数,该参数采用名为options
的对象。 options
的属性isNewRecord
默认为true。如果将其设置为false并使用update()
,它将在设置主键后更新现有记录。
let instance = await db.Model.build({}, {isNewRecord: false});
const result = await instance.update({
id: instanceId,
column : newValue
});