2017-10-03 1 views
2

Sie haben versucht, Beispielverwendung für einige der statischen Methoden für ein persistedModel in Loopback zu finden.Loopback Suchen, dann Attribut aktualisieren oder nach ID löschen

https://apidocs.strongloop.com/loopback/#persistedmodel-prototype-updateattribute

es sagt nur:

persistedModel.updateAttributes(data, callback) 

Aber wie Sie mir die Aufzeichnung wählen mag ich aktualisieren? das funktioniert nicht für mich.

var order = Order.setId('whateverrecordId'); 
order.updateAttributes({name:'new name'},callback) 

Liebend Loopback .. aber ihre doc, saugt .. :(

+0

shouldn‘ t es sein 'order.updateAttributes ({Name: 'neuer Name'}, Rückruf)'? –

Antwort

1

Sie können die auf Ereignis-Listener wie aftersave verwenden

Beispiel:

Model.observe('after save', function(ctx, next) { 
    ctx.instance.updateAttribute(fieldname:'new value'); 
    next(); 
}); 
1

1- Was haben Sie war richtig, aber ich rate diese Methode nicht es zum Beispiel Methoden verwendet wird und in der Regel von Feldern wie Datum zu aktualisieren Für alle Sammlungen, die Sie haben, brauchen Sie keine ID

Sie können jedoch versuchen, ein Array mit Daten zu aktualisieren, die auch die IDs enthalten, und dann einen Vergleich durchzuführen, um die Daten für die IDs auszufüllen dass Sie haben. (in #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- Sie können updateAll verwenden, um ein oder mehrere Attribute zu aktualisieren.

PersistedModel.updateAll ([where], Daten, Rückruf)

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 
    }) 
}) 
Verwandte Themen