2016-07-19 9 views
0

Ich habe versucht, die Suche aber kein Hinweis Abfrage entspricht diesenBücherregal Abfrage-Tabelle zu aktualisieren

update <Table Name> set <Column> x = y where z = a; 

Dank Bücherregal.

+0

nach unten Stimmen sind willkommen, wenn begleitet von Kommentaren zur Verbesserung. Lernen ist immer wichtig als Stack-Reputation. – Hitsa00

+0

Ich denke, wer auch immer abstimmte, mochte nicht die fehlende Forschung Ihrer Frage. Hast du wirklich die Dokumentation von Bookshelf durchgesehen? Die Frage wird hilfreicher, wenn Sie Beispielcode hinzufügen, der Ihren Versuch demonstriert. – flaviodesousa

+1

Danke @flaviodesousa. das ist was ich brauchte. Ich habe keine Details hinzugefügt, weil ich möchte, dass sie generisch sind. Ihre Antwort ist auch sehr generisch und kann anderen Neulingen wie mir helfen. NOCH EINMAL VIELEN DANK!!!. :) – Hitsa00

Antwort

2

Bücherregal save() documentation hat ein Beispiel für genau das.

Verwenden Sie einfach where() für das Modell, um anzugeben, welche Zeilen und save() mit der Liste der Attribute zusammen mit der Option { patch: true }.

Wenn wir eine Tabelle Benutzer (ID, Name, E-Mail) haben wird es so etwas wie:

var knex = require('knex')({ 
    client: 'sqlite3', 
    connection: {filename: 'data.sqlite3'}, 
    debug: true}); // <- so you can see the generated query 
var bookshelf = require('bookshelf')(knex); 

var User = bookshelf.Model.extend({ 
    tableName: 'users', 
}); 

(function() { 
    User 
    .where({name:'amy'}) 
    .save({email: '[email protected]'},{patch:true}) 
    .then(function(x) { 
     console.log(x.toJSON()); 
    }); 
})(); 

Der obige Code als Ausgabe:

{ method: 'update', 
    options: {}, 
    bindings: [ '[email protected]', 'amy' ], 
    sql: 'update "users" set "email" = ? where "name" = ?' } 
{ email: '[email protected]' } 
Verwandte Themen