Sequelize - update record, and return result

后端 未结 7 844
粉色の甜心
粉色の甜心 2020-12-28 11:20

I am using sequelize with MySQL. For example if I do:

models.People.update({OwnerId: peopleInfo.newuser},
        {where: {id: peopleInfo.scenario.id}})
             


        
7条回答
  •  有刺的猬
    2020-12-28 11:54

    Here's what I think you're looking for.

    db.connections.update({
      user: data.username,
      chatroomID: data.chatroomID
    }, {
      where: { socketID: socket.id },
      returning: true,
      plain: true
    })
    .then(function (result) {
      console.log(result);   
      // result = [x] or [x, y]
      // [x] if you're not using Postgres
      // [x, y] if you are using Postgres
    });
    

    From Sequelize docs: The promise returns an array with one or two elements. The first element x is always the number of affected rows, while the second element y is the actual affected rows (only supported in postgres with options.returning set to true.)

    Assuming you are using Postgres, you can access the updated object with result[1].dataValues.

    You must set returning: true option to tell Sequelize to return the object. And plain: true is just to return the object itself and not the other messy meta data that might not be useful.

提交回复
热议问题