我在帆上建立一个项目(0.10.0-rc5)几天,在少数情况下我需要使用相同的数据一次更新多个条目,所以我做了一些...... < / p>
Servers.find({owner_id: anonymous_user.id}).exec(function(error, servers) {
catches.error(error);
queries.save_each(servers, {owner_id: user.id});
});
有趣的部分是我创建的queries.save_each()......
/**
* Save each ActiveRecord objects with the desired attributes
* @param {object} objects ActiveRecord object (e.g. servers, users)
* @param {object} updates datas to update
* @return {void}
*/
save_each = function(objects, updates) {
// For each object we will update the wanted datas
for (var n in objects) {
objects[n] = variables.inject(objects[n], updates);
objects[n].save(function(error) {
catches.error(error);
});
}
}
基本上,它会检查每个条目并使用save()从新数据中更新它。它工作正常,但我想知道在水线上是否已经没有做过这样做;我没有找到任何东西,但我在航行中相当初学者也许我错过了一些东西!
有什么想法吗?
答案 0 :(得分:7)
要记录,要更新Sails中的记录,请使用update
方法:
Model.update(criteria, data).exec(callback);
例如:
Servers.update({owner_id: anonymous_user.id}, {owner_id: user.id})
.exec(function(err, updatedServers) {
// do something
});
update
的文档位于here。
答案 1 :(得分:0)
这对我有用:
这里有一组照片,我们想要更新。
var photos= [1,2,5]; //update the status of these 3 photos at once!
var values = {status:"accepted"};
Photo.update(photos,values).exec(function afterwards(err, updated){
if (err) {
res.json(err)
return;
}
res.json({err:"Everything worked"})
});