Sequelize 数据库 model 查询之 where 条件的使用

阅读时长 4 分钟读完

Sequelize 是一个基于 Node.js 的 ORM 框架,使得开发者可以透过 JavaScript 连接到关系型数据库。其中最核心的部分就是 Model,它是对数据库表结构的抽象和封装,是 ORM 模式中的基本概念之一。在使用 Model 进行数据库操作时,我们经常会使用到 where 条件进行筛选,本文就具体介绍 Sequelize 的 where 条件用法。

前置知识

在阅读本文前需要对 Sequelize 的 Model 和 Query 记录功能有一定了解。

where 条件的基本用法

where 条件是用来指定查询的过滤条件,表示查询表中满足 where 后条件的行。在 Sequelize 中,我们可以使用字符串、对象,甚至是函数进行 where 条件的构建。

字符串

在 where 中,我们可以使用字符串表示查询的过滤条件,基本语法如下:

上述 where 条件表示查询 attributeName 属性的值为 value 的记录。语法中,我们可以使用等于号、大于小于号、逻辑运算符等对字符串进行拼接构建复杂的条件语句。

对象

还可以使用对象的形式进行 where 条件的构建,并且可以使用 Sequelize 提供的运算符、别名等功能。基本语法如下:

-- -------------------- ---- -------
----- --------- - ---------------------
----- -- - -------------

---------------
  ------ -
    -------------- -
      -------- -------
    -
  -
---

上述 where 条件表示查询 attributeName 属性的值等于 value 的记录。语法中,我们首先定义了 Sequelize 变量并将其赋值为 Sequelize 对象,再使用下标运算符选到其中的运算符 eq 进行使用。同样可以使用大于、小于等等运算符。对象中我们还可以嵌套属性,实现更复杂的条件构建。

函数

在 where 条件中,还可以通过函数的方式进行构建,这种方式使用更加灵活。基本语法如下:

上述 where 条件表示查询 attributeName 属性的值转换为小写后等于 value 的记录。语法中,我们在 where 中传入一个函数,函数参数中有 Sequelize 所需的 sequelize 和 Op 对象。其中使用了 Sequelize.fn 和 Sequelize.col 方法包装查询语句。

进阶用法

模糊查询

在 where 中,常常需要使用到模糊查询,在 Sequelize 中,可以使用 % 和 _ 通配符实现。% 代表任意数量字符,_ 代表单个字符。基本语法如下:

上述 where 条件表示查询 attributeName 属性的值包含 value 的记录。

范围查询

Sequelize 还提供了范围查询的功能,使用 [Op.between] 和 [Op.notBetween] 来指定一个区间。基本语法如下:

上述 where 条件表示查询 attributeName 属性的值在 start 和 end 之间的记录。

总结

本文介绍了 Sequelize Model 中 where 条件的基础用法,包括字符串、对象和函数三种方式,以及模糊查询和范围查询的使用。通过本文的阅读,读者可以深入了解 Sequelize 的 Model 以及查询条件的使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6485a8d448841e9894469156

纠错
反馈