首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sequelize conditional on upsert

Sequelize conditional on upsert
EN

Stack Overflow用户
提问于 2020-08-12 05:11:59
回答 2查看 342关注 0票数 0

我目前正在node.js中使用sequelize v5。我正在尝试使用upsert来创建新行或更新现有行,但我希望仅在满足条件时才触发更新。

代码语言:javascript
运行
复制
await Model.upsert({values});

在模型表中,我有一个布尔列。如果布尔值为true,我希望更新不会覆盖现有行。我想也许我可以在beforeUpdate或beforeSave上使用一个钩子,但是我想不出来。

编辑:如果有必要的话,我正在使用postgresql。

EN

回答 2

Stack Overflow用户

发布于 2020-08-12 07:16:28

假设您有一个名为User的模型,您声明了模型类

代码语言:javascript
运行
复制
class User extends Model {}
User.init({
  username: DataTypes.STRING,
  mood: {
    type: DataTypes.ENUM,
    values: ['happy', 'sad', 'neutral']
  }
});

你可以像那样做广告挂钩

代码语言:javascript
运行
复制
User.beforeUpsert(user, options) => {
  if(user.condition){
... do stuff
  }
});
票数 1
EN

Stack Overflow用户

发布于 2020-08-12 07:09:17

对于v5中的upsert操作,已经有了一个beforeUpsert钩子,尝试一下可能会很有帮助。

以下是Sequelize v5的official docs,您可以在其中找到所有挂钩及其用法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63366436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档