我想知道sequelize是否实现(或计划实施)任何更改跟踪机制,其目标是避免运行不必要的查询。例如:
var user = sequelize.User.find { where: { name: 'bob' } };
user.name = 'john';
user.save();
sequelize当然会更新用户名。现在,想象一下失去了作业。
var user = sequelize.User.find { where: { name: 'bob' } };
user.save();
sequelize是否足够智能,以确定不需要数据库更新(并且不会做任何更新)?是否有sequelize对象暴露的标志,以查看是否对模型进行了任何更改?
或者我应该只是手动测试每个属性与原始模型?
我注意到sequelize模型上的user._previousDataValues和user.options.isDirty属性,但我不确定它们的用途是什么,以及我是否应该以任何方式依赖我的代码。