Loopback查找然后更新属性或按id删除

时间:2017-10-03 00:01:05

标签: node.js loopbackjs loopback

试图在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)

爱环回..但他们的文件,糟透了.. :(

2 个答案:

答案 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();
});