Sequelize 是一个基于 Node.js 的 ORM 框架,可以让开发者在 Node.js 环境下使用关系型数据库。它支持 PostgreSQL、MySQL、SQLite 等主流数据库,并提供了丰富的 API。
在 Sequelize 中,查询器 Querying 是与数据库交互的主要方式。本篇文章将为大家介绍 Sequelize 查询器的相关接口定义。
1. 定义查询器
Sequelize 查询器 Querying 是一个非常灵活的工具,可以通过链式结构来组合各种查询条件,以构建出需要的查询语句。
在使用查询器之前,我们需要先定义一个 Model:
-- -------------------- ---- -------
----- - ---------- --------- - - ---------------------
----- --------- - --- -----------------------------------------------------------
----- ---- - ------------------------ -
--- -
----- ------------------
---------- ------
----------- ----
--
----- -
----- -----------------
---------- -----
--
---- -
----- ------------------
---------- -----
-
---2. 如何使用查询器?
查询器可以用于各种查询语句,例如 SELECT、WHERE、JOIN等。下面我们将介绍 Sequelize 查询器中最常用的一些接口。
findAll
findAll 用于查询符合条件的所有记录:
const users = await User.findAll({
where: {
age: 18
}
});上面代码中,我们通过 findAll 查询出所有年龄为 18 的用户,并将结果赋值给 users。
findOne
findOne 用于查询符合条件的第一条记录:
const user = await User.findOne({
where: {
name: '张三'
}
});上面代码中,我们通过 findOne 查询出名字为 '张三' 的用户,并将结果赋值给 user。
count
count 用于查询符合条件的记录条数:
const count = await User.count({
where: {
age: 18
}
});上面代码中,我们通过 count 统计出年龄为 18 的用户数,并将结果赋值给 count。
create
create 用于创建新的记录:
const user = await User.create({
name: '李四',
age: 20
});上面代码中,我们通过 create 创建了一个名字为 '李四',年龄为 20 的用户,并将结果赋值给 user。
update
update 用于更新符合条件的记录:
const affectedRows = await User.update({
age: 19
}, {
where: {
name: '张三'
}
});上面代码中,我们通过 update 将名字为 '张三' 的用户的年龄更新为 19,并将结果赋值给 affectedRows。需要注意的是,不加限制条件的话,将会更新所有记录。
destroy
destroy 用于删除符合条件的记录:
const affectedRows = await User.destroy({
where: {
age: {
[Sequelize.Op.lt]: 18
}
}
});上面代码中,我们通过 destroy 删除年龄小于 18 的用户,并将结果赋值给 affectedRows。
3. 小结
本文主要介绍了 Sequelize 查询器中常用的几个接口,包括 findAll、findOne、count、create、update 和 destroy,并讲述了如何定义 Model,并实现相应的查询操作。希望本文能对大家了解 Sequelize 查询器有所帮助。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/6781168e4b0a96d284d70b99