📅  最后修改于: 2023-12-03 14:51:10.441000             🧑  作者: Mango
在 Sequelize 中,我们可以通过指定哪些字段需要保存来避免保存全部数据。这对于大型数据表格或需要保存历史变更的数据表格特别有用。
在使用 create
、update
、build
等 Sequelize 方法创建或更新实例时,可以通过指定 attributes
选项来指定需要保存的字段。例如,如果我们只希望保存实例的名称和描述:
// 新建实例
await User.create({
name: 'John Doe',
description: 'A user account'
}, {
attributes: ['name', 'description']
});
// 更新实例
await User.update({
name: 'Jane Doe',
description: 'An updated user account'
}, {
where: { id: 1 },
attributes: ['name', 'description']
});
如果我们只想在保存某些字段时预先验证数据,可以使用 validate
选项。例如,如果要在保存实例的名称和描述时验证这些字段是否为空:
await User.create({
name: 'John Doe',
description: 'A user account'
}, {
attributes: ['name', 'description'],
validate: {
name: { notEmpty: true },
description: { notEmpty: true }
}
});
如果我们需要动态指定要保存的字段,则可以使用实例的 save
方法并传递一个包含要保存的字段名称的数组作为参数。例如,如果我们想要根据用户输入保存用户的数据:
const userInput = {
name: 'John Doe',
email: 'john@example.com',
description: 'A user account'
};
const user = await User.build(userInput);
const fieldsToSave = ['name', 'description'];
await user.save({
fields: fieldsToSave
});
通过只保存必要的字段,我们可以有效地减轻数据库的负荷,提高性能,并避免存储不必要的数据。同时,我们可以使用预先验证确保我们只保存有效的数据,从而提高应用程序的安全和稳定性。