Mi chiedevo se sequelize implementare (o piani per implementare) qualsiasi meccanismo di tracciamento delle modifiche, che l'obiettivo sarebbe quello di evitare l'esecuzione di query non necessarie. Per esempio:
var user = sequelize.User.find { where: { name: "bob" } };
user.name = "john";
user.save();
Il sequelize aggiornerà ovviamente il nome utente. Ora, immagina che manchi il compito.
var user = sequelize.User.find { where: { name: "bob" } };
user.save();
Il sequelize è abbastanza intelligente da capire che non è necessario alcun aggiornamento del database (e non lo si può fare?) C'è qualche flag esposto dall'oggetto sequelize per vedere se sono state apportate modifiche al modello?
O dovrei semplicemente testare a mano ogni proprietà contro il modello originale?
Ho notato proprietà user._previousDataValues e user.options.isDirty sul modello sequelize, ma non sono sicuro di quale sia il loro scopo e se dovrei fare affidamento sul mio codice su quelli in qualsiasi modo.
risposte:
1 per risposta № 1Puoi chiamare user.changed () per ottenere un array di chiavi che sono state cambiate. Tuttavia, penso che chiamare .save () attiverà il salvataggio a prescindere se ci sia stato un cambiamento nell'istanza.