2016-03-22 16 views
1

Ich habe viele Werte in einem alten Wakanda Datenspeicher, den ich auf einige neue Werte aktualisieren muss. Gibt es einen Curl-ähnlichen Befehl in der Wakanda-Daten-Browser-Seite, der verwendet werden kann, um eine Massensuche in einer Tabelle durchzuführen?Wakanda Datastore - Suchen und Ersetzen?

Antwort

2

Wenn Ihr Dataclass MyDataClass aufgerufen und das Attribut, das Sie wollen, ist, aktualisieren myAttribute Sie können verwenden Sie die folgende Server-Skript:

var newValue = "new value"; 

    ds.MyDataClass.all().forEach(function(entity){ 
      entity.myAttribute = newValue; 
      entity.save(); 
    }); 

Sie können Verwenden Sie auch eine transaction, wenn Sie das Ganze festschreiben oder zurücksetzen möchten Vorgang

+0

Danke, das war sehr praktisch! –

2

Ich glaube nicht, dass es eine Möglichkeit gibt, eine Menge von Suchen/Ersetzen im DataBrowser, zu tun. Aber ich schlage vor, Sie verwenden eine Abfrage auf der Serverseite, die die Datensätze mit dem Wert suchen, den Sie ersetzen müssen, und dann auf dieser Sammlung eine Schleife zu setzen, die neuen Werte

+0

Ich werde einige graben tun, um die korrekte Syntax für die Abfrage der db Server-Seite zu finden. Vielen Dank! –

2

Wie in anderen Antworten erwähnt, ist es wahrscheinlich am besten, eine Sammlung zu durchlaufen. Es gibt kein Konzept für einen Massenersatz in Wakanda, wie Sie es in vielen anderen Datenbanken finden.

var myCollection = ds.DataClassName.query("attributeName == :1", "valueToFind"); 
myCollection.forEach(function(e){ 
    e.attributeName = "newValue"; 
    e.save(); 
}); 

So eine Fälschung „Person“ Datentyp könnte wie folgt aussehen:

var blankFirsts = ds.Person.query("firstname == :1", ""); 
blankFirsts.forEach(function(person){ 
    person.firstname = "no name"; 
    person.save(); 
});