使用node.js(v0.10.12)和sequelize(2.0.0-dev9),我想更新现有数据库表中的属性。来自花药SO discussion我一次只能更新一条记录。我在for循环中封装了调用,但是在for循环中更新了相同的记录。
有人可以帮我修改此代码以更新符合搜索要求的所有记录吗?以下是我的代码:
global.db.Task.find({ where: {"Cd": "match"} && {"Desc": null}
}).on('success', function(task) {
if (task) { // if the record exists in the db
task.updateAttributes({
Desc: "New Upate"
}).success(function() {});
}
})
答案 0 :(得分:5)
根据docs你需要做一个BulkCreate :(未经测试)
global.db.Task.update(
{Desc: 'New Upate'}, //set attribute
{cd: 'match', Desc: null} //where criteria
).success(function(affectedRows) { ... });