环回查找然后更新属性或按 id 删除
Loopback Find then update attribute or delete by id
一直在尝试查找 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)
爱环回..但他们的医生,糟透了..:(
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
})
})
你可以在像 AfterSave 这样的事件监听器上使用它们
示例:
Model.observe('after save', function(ctx, next) {
ctx.instance.updateAttribute(fieldname:'new value');
next();
});
一直在尝试查找 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)
爱环回..但他们的医生,糟透了..:(
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
})
})
你可以在像 AfterSave 这样的事件监听器上使用它们
示例:
Model.observe('after save', function(ctx, next) {
ctx.instance.updateAttribute(fieldname:'new value');
next();
});