我想知道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属性,但我不确定它们的目的以及我是否应该以任何方式依赖我的代码。