Node.js 续集条件为upsert
我目前正在将sequelize v5与node.js一起使用。我试图使用upsert创建新行或更新现有行,但我希望仅在满足条件时触发更新Node.js 续集条件为upsert,node.js,sequelize.js,Node.js,Sequelize.js,我目前正在将sequelize v5与node.js一起使用。我试图使用upsert创建新行或更新现有行,但我希望仅在满足条件时触发更新 await Model.upsert({values}); 在模型表中,我有一个布尔列。如果布尔值为true,我希望更新不会覆盖现有行。我想也许我可以使用一个钩子来进行beforeUpdate或beforeSave,但我想不出来 编辑:如果有必要的话,我正在使用postgresql。对于v5中的upsert操作,在upsert之前已经有一个钩子,尝试一下可能
await Model.upsert({values});
在模型表中,我有一个布尔列。如果布尔值为true,我希望更新不会覆盖现有行。我想也许我可以使用一个钩子来进行beforeUpdate或beforeSave,但我想不出来
编辑:如果有必要的话,我正在使用postgresql。对于v5中的upsert操作,在upsert之前已经有一个
钩子,尝试一下可能会有所帮助
下面是Sequelize v5的示例,您可以在其中找到所有挂钩及其用法假设您有一个名为User的模型
您声明了模型类
class User extends Model {}
User.init({
username: DataTypes.STRING,
mood: {
type: DataTypes.ENUM,
values: ['happy', 'sad', 'neutral']
}
});
你可以这样做
User.beforeUpsert(user, options) => {
if(user.condition){
... do stuff
}
});
如果不满足该条件,我将如何防止发生意外?根据我对这个钩子的理解,我可以做其他的方法,但是在这些方法完成之后,upsert仍然会进行。我可能是错的,因为我还没有太多地使用钩子。当返回条件时,您可以停止执行函数;```如果(条件)返回```