Sequelize 是一个 Node.js 的基于 Promise 构建的 ORM(Object-Relational Mapping)。ORM 是一种编程技术,它将数据库与对象之间的联系系统化地处理,可以通过编程语言直接对操作数据的对象进行操作,其对于开发者极大的提升了开发效率,同时也降低了开发的难度。
在 Sequelize 中,我们可以使用一种叫做条件查询的方式对数据库中的数据进行操作。本篇文章将介绍 Sequelize ORM 中的条件查询的实现方式和如何使用 Sequelize ORM 来实现条件查询。
查询条件
在 Sequelize ORM 中,查询条件可以分为三种类型:
- 简单查询:查询符合条件的单个数据
- 复合查询:查询符合条件的多个数据
- 关键字查询:通过指定字段的关键字来实现查询,如 LIKE、IN 等
下面将介绍如何实现这三种类型的查询条件。
简单查询
我们可以用 findOne() 方法查询符合条件的单个数据。在该方法中,我们需要传递一个对象做为参数,该对象所包含的属性与对应的值将对返回结果进行限制。例如:
const user = User.findOne({ where: { id: 1, }, });
这条查询语句将查询出 User 表中 id 为 1 的单个数据。其中,where 对象作为查询条件传递给 findOne() 方法。
复合查询
我们可以使用 findAll() 方法查询符合条件的所有数据,同样需要传递一个对象做为查询条件,例如:
const users = User.findAll({ where: { age: 20, }, });
这条查询语句将查询出 User 表中年龄(age)为 20 的数据。
关键字查询
在 Sequelize ORM 中,我们可以使用 Sequelize.Op 对象来定义查询的关键字,例如 LIKE、IN 等。以下是一些常见关键字的用法。
运算符
const users = User.findAll({ where: { age: { [Sequelize.Op.gt]: 20, // age > 20 [Sequelize.Op.lt]: 30, // age < 30 }, }, });
以上查询将查询出 User 表中年龄在 20~30 岁之间的数据。
模糊查询
const users = User.findAll({ where: { name: { [Sequelize.Op.like]: '%小%', }, }, });
以上查询将查询出 User 表中名字中含有“小”字的数据。
IN 查询
const users = User.findAll({ where: { id: { [Sequelize.Op.in]: [1, 2, 3], }, }, });
以上查询将查询出 User 表中 id 为 1、2、3 的数据。
示例代码
以下代码包含了 Sequelize ORM 如何实现条件查询的示例:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- --------------------- ----------- ----------- - -------- -------- --- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ---- -- ----- - ----- -------------------- -- ---- - ----- ----------------- -- --- ----- ---- - ----- -- -- - ----- ---------------- ------ ---- --- ----- ------------- ----- ----- ---- --- --- ----- ------------- ----- ----- ---- --- --- ----- ------------- ----- ----- ---- --- --- -- ---- ----- ---- - ----- -------------- ------ - --- -- -- --- --------------------------- -- ---- ----- ----- - ----- -------------- ------ - ---- --- -- --- ---------------------------- -- ---------------- -- ----- ----- ------ - ----- -------------- ------ - ---- - ------------------ --- ------------------ --- -- -- --- ----------------------------- -- ---------------- ----- ------ - ----- -------------- ------ - ----- - -------------------- ------ -- -- --- ----------------------------- -- ---------------- ----- ------ - ----- -------------- ------ - --- - ------------------ --- -- --- -- -- --- ----------------------------- -- ---------------- -- -------
总结
通过本篇文章的学习,我们了解了 Sequelize ORM 的三种查询条件类型,以及如何使用 Sequelize ORM 来实现条件查询。通过 Sequelize ORM 的学习,我们可以更加方便地对数据库进行操作,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64cd326a1519ea946c10a224