sequelize更新已经存在的,保存不存在的

发布于 2022-09-06 15:58:03 字数 161 浏览 9 评论 0

比如说如果存在小明这个人了我就只更改age,如果不存在小明这个人我就从新创建这个人,有没有比较简单的写法

User.create({ // 保存每天的请求记录
    user_id: id,
    name: "小明",
    age:5
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

待天淡蓝洁白时 2022-09-13 15:58:04

解决

User.findOrCreate({
      where: {name: '小明'}, 
      defaults: {age: 5}
    })
    .spread((user, created) => {
      if(created === false) {
        user.update({......})
      }
    })

分析

  1. 查找小明
  2. 如果没有

    1. 根据defaults创建数据
    2. 返回创建后的数据user 为刚创建的对象
    3. 返回是否创建created 为true
    4. 通过spread拆分返回的数组
  3. 如果已存在

    1. 返回已存在的数据
    2. user是已存在数据
    3. created为false
    4. 更新user即可

建议

比较常用的框架,插件,最好还是通读一下文档

参考

http://docs.sequelizejs.com/m...

旧街凉风 2022-09-13 15:58:04

找到了一个中文文档 https://github.com/demopark/s...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文