Sequelize 是 Node.js 中流行的 ORM 框架,它可以帮助开发者更便捷地操作数据库。在 Sequelize 中,Model 是一个非常重要的概念,它是操作数据库的核心。本文将介绍 Sequelize Model 的创建、查询、更新和删除操作,旨在帮助开发者更好地理解 Sequelize 的使用。
Sequelize Model 的创建
在使用 Sequelize 操作数据库之前,需要先创建 Model。在 Sequelize 中,一个 Model 对应数据库中的一张表,它定义了表中的字段和相应的数据类型。下面是一个简单的创建 Model 的示例:
-- -------------------- ---- ------- ----- - ---------- ------ --------- - - --------------------- ----- --------- - --- --------------------- ----------- ----------- - -------- ------- --- ----- ---- ------- ----- -- ----------- --- - ----- ------------------ -------------- ----- ----------- ---- -- ----- - ----- ---------------- -- ---- - ----- ----------------- -- -- - ---------- ---------- ------ ---
在上面的代码中,我们创建了一个名为 User
的 Model,它有三个字段:id
、name
和 age
。其中,id
为自增整数类型,并且为主键。
Sequelize Model 的查询
在创建完 Model 之后,我们可以使用 Sequelize 提供的 API 进行数据的查询。下面是一些基本的查询操作示例:
findAll()
findAll()
方法用于查询所有符合条件的数据。下面是一个查询所有用户的示例:
const users = await User.findAll(); console.log(users);
findOne()
findOne()
方法用于查询符合条件的第一条数据。下面是一个查询名为 "Linda" 的用户的示例:
const user = await User.findOne({ where: { name: 'Linda' } }); console.log(user);
findByPk()
findByPk()
方法用于根据主键查询数据。下面是一个查询 id
为 1
的用户的示例:
const user = await User.findByPk(1); console.log(user);
findOrCreate()
findOrCreate()
方法用于查询符合条件的数据,如果不存在则创建。下面是一个查询名为 "Tom" 的用户,如果不存在则创建的示例:
const [user, created] = await User.findOrCreate({ where: { name: 'Tom' }, defaults: { age: 18 } }); console.log(user, created);
Sequelize Model 的更新
在查询到符合条件的数据之后,我们可以使用 Sequelize 提供的 API 直接对数据进行更新。下面是一个更新名为 "Linda" 的用户年龄为 20
的示例:
const [num, users] = await User.update( { age: 20 }, { where: { name: 'Linda' } } ); console.log(num, users);
输出结果中,num
表示更新的行数,users
表示更新后的数据。
Sequelize Model 的删除
除了更新操作,我们也可以使用 Sequelize 提供的 API 对数据进行删除。下面是一个删除名为 "Linda" 的用户的示例:
const num = await User.destroy({ where: { name: 'Linda' } }); console.log(num);
输出结果中,num
表示删除的行数。
总结
Sequelize 是一个强大的 ORM 框架,可以帮助开发者更便捷地操作数据库。在本文中,我们介绍了 Sequelize Model 的创建、查询、更新和删除操作,并提供了相应的示例代码。希望本文能够帮助您更好地理解 Sequelize 的使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6460954f968c7c53b023ffaa