sequelize 有很多关联更新

sequelize has many associations update

我正在使用节点 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])
  }
}