试图在Loopback中找到persistedModel的一些静态方法的样本用法。
https://apidocs.strongloop.com/loopback/#persistedmodel-prototype-updateattribute
它只是说:
persistedModel.updateAttributes(data, callback)
但是你如何选择我要更新的记录?这不适合我。
var order = Order.setId('whateverrecordId');
order.updateAttributes({name:'new name'},callback)
爱环回..但他们的文件,糟透了.. :(
答案 0 :(得分:2)
1-你所做的是对的,但我不建议这种方法用于实例方法,并且通常更新所有收集的日期等字段,因此你不需要id为了它。
但您可以尝试创建一个包含要更新的数据的数组,同时包含ID,然后进行比较以填充您拥有的ID的数据。 (在#dosomething中)
order.find().then(function(orders) {
orders.forEach(function(element) {
order.setId(element.id);
#DoSomething
order.updateAttribute({new: data}, function(err, instance) {
console.log(instance);
})
});
})
2-您可以使用updateAll更新一个或多个属性。
PersistedModel.updateAll([where],data,callback)
var Updates = [{id : 1, name: name1}, ...]
Updates.forEach(function(element) {
order.updateAll({id : element.id}, {name :element.name}, function(err, count) {
if (err) {
console.error(err);
}
console.log(count); // number of data updated
})
})
答案 1 :(得分:2)
您可以在事件监听器上使用它们,如AfterSave
示例:
Model.observe('after save', function(ctx, next) {
ctx.instance.updateAttribute(fieldname:'new value');
next();
});