📜  在 sequelize 中更新数据 (1)

📅  最后修改于: 2023-12-03 14:51:10.494000             🧑  作者: Mango

在 Sequelize 中更新数据

Sequelize 是一个 Node.js 平台下基于 Promise 的 ORM 框架,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server 等。Sequelize 提供了一种方便的方法来更新数据,下面将介绍如何在 Sequelize 中更新数据。

更新单个实例

首先,我们可以使用 findOne 方法在数据库中查找并获取要更新的实例,然后调用实例的 update 方法来更新它的属性。例如,我们可以将用户表中的某个用户的名字从 "John" 更新为 "Jack":

const User = sequelize.define('user', {
  name: Sequelize.STRING,
  age: Sequelize.INTEGER,
});

User.findOne({ where: { name: 'John' } }).then(user => {
  if (user) {
    user.update({ name: 'Jack' }).then(updated => {
      console.log(updated.name); // "Jack"
    });
  }
});

以上代码中,我们通过 findOne 方法查找数据库中 name 属性为 "John" 的用户。如果查找到了用户,就对它的 name 属性进行更新,将其值设为 "Jack"。最后,我们打印更新后的用户名。

批量更新实例

如果要更新多条记录,我们可以使用 update 方法直接更新符合条件的所有记录。例如,我们可以将用户表中所有年龄大于 18 岁的用户的名字都改为 "Adult":

User.update({ name: 'Adult' }, { where: { age: { [Op.gt]: 18 } } }).then(updated => {
  console.log(updated); // [1, 2, ...]
});

以上代码中,我们使用 update 方法更新符合条件的所有记录。其中,第一个参数是要更新的属性,第二个参数是查询条件。这里我们采用了运算符 Op,它是 Sequelize 提供的运算符别名对象,可以简化我们的查询条件。

返回格式

本文介绍如何在 Sequelize 中更新数据,包括更新单个实例和批量更新多个实例。在更新数据时,我们可以使用 update 方法来修改符合条件的属性,也可以使用 findOne 方法和实例的 update 方法来修改实例的属性。

本文以 Markdown 格式返回,代码片段附带 Markdown 标记,如下所示:

```javascript
// 代码片段