微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sequelize 有很多关联更新

如何解决sequelize 有很多关联更新

我正在使用 node js 和 sequelize (MysqL) 构建 resful api。

我有两个模型,(事件)有很多(用户)。

为了使用模型创建事件,我正在这样做:

 add(req,res) {
    return event.create(
      {
        name: req.body.name,users: req.body.users,},{
        include: [
          {
            model: User,as: "users",],}
    )

一切正常。

但是当我想更新时,我在这里遇到了大问题。 例如我当前的事件看起来像:

"events" : [
{
 "id" : 1,"name" :"name"
"users" :[
{
"id" :1,"name" :"name1",{
"id" :2,"name" :"name2",}
]
}]

我想要达到的目标: 我想更新用户: 如果请求中存在用户 ID,我想更新用户,但如果请求中不存在用户 ID,我想删除用户

我如何在 sequelize 和 node js 中做到这一点。我在这里堆栈。

解决方法

向您的路由器展示您尝试处理该逻辑的位置。 当你说用户存在时,你的意思是用户完全存在还是只属于请求的事件,请更具体!!!

// lets say you want to update users of event id=1
const event = await Event.findByPk(1)
// you can get users belonging to event by association mixins
const users = await event.getUsers()
// loop through users to update them
for (let i=0; i < users.length; i++) {
  // put your logic to make changes to users
  if (users[i].getDataValue('id') == 1) {
    await event.removeUser(users[i])
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。