前言
Sequelize 是一个强大的 Node.js ORM,它允许我们以一种面向对象的方式来操作数据库,同时支持多种数据库,如 MySQL、SQLite、PostgreSQL 等。在 Sequelize 中,我们可以使用各种操作符来查询数据,本文将详细介绍 Sequelize 中的操作符 Op.eq、Op.ne 等操作符进行数据的等值查询及不等查询。
数据库表结构
在本文中,我们将以一个简单的用户表来演示 Sequelize 中的操作符。
----- --------- - ------------------------- - --- - ----- ------------------ ----------- ----- -------------- ---- -- ----- - ----- ----------------- ---------- ----- -- ---- - ----- ------------------ ---------- ----- -- ------ - ----- ----------------- ---------- ------ ------- ---- - ---
该用户表包含了四个字段:id、name、age、email,其中 id 是主键,并且自增长。
Op.eq 等值查询
我们可以使用 Op.eq 操作符来进行等值查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - -------- -- - - ---
这段代码将查询所有 age 字段等于 18 的用户记录。在这里,我们使用了 Sequelize 中的 findAll 方法来查询数据,同时也使用了 where 条件查询。在 where 中,我们将 age 字段设置为 Op.eq 操作符,并传入一个值为 18 的参数,从而实现等值查询。
Op.ne 不等查询
我们可以使用 Op.ne 操作符来进行不等查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - -------- -- - - ---
这段代码将查询所有 age 字段不等于 18 的用户记录。与上面的示例类似,在 where 中,我们将 age 字段设置为 Op.ne 操作符,并传入一个值为 18 的参数,从而实现不等查询。
Op.gt 大于查询
我们可以使用 Op.gt 操作符来进行大于查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - -------- -- - - ---
这段代码将查询所有 age 字段大于 18 的用户记录。同样,在 where 中,我们将 age 字段设置为 Op.gt 操作符,并传入一个值为 18 的参数,从而实现大于查询。
Op.gte 大于等于查询
我们可以使用 Op.gte 操作符来进行大于等于查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - --------- -- - - ---
这段代码将查询所有 age 字段大于等于 18 的用户记录。同样,在 where 中,我们将 age 字段设置为 Op.gte 操作符,并传入一个值为 18 的参数,从而实现大于等于查询。
Op.lt 小于查询
我们可以使用 Op.lt 操作符来进行小于查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - -------- -- - - ---
这段代码将查询所有 age 字段小于 18 的用户记录。同样,在 where 中,我们将 age 字段设置为 Op.lt 操作符,并传入一个值为 18 的参数,从而实现小于查询。
Op.lte 小于等于查询
我们可以使用 Op.lte 操作符来进行小于等于查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - --------- -- - - ---
这段代码将查询所有 age 字段小于等于 18 的用户记录。同样,在 where 中,我们将 age 字段设置为 Op.lte 操作符,并传入一个值为 18 的参数,从而实现小于等于查询。
Op.in 范围查询
我们可以使用 Op.in 操作符来进行范围查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - -------- ---- --- --- - - ---
这段代码将查询所有 age 字段等于 18、19 或 20 的用户记录。同样,在 where 中,我们将 age 字段设置为 Op.in 操作符,并传入一个包含 18、19 和 20 的数组作为参数,从而实现范围查询。
Op.notIn 非范围查询
我们可以使用 Op.notIn 操作符来进行非范围查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ---- - ----------- ---- --- --- - - ---
这段代码将查询所有 age 字段不等于 18、19 或 20 的用户记录。在 where 中,我们将 age 字段设置为 Op.notIn 操作符,并传入一个包含 18、19 和 20 的数组作为参数,实现非范围查询。
Op.like 模糊查询
我们可以使用 Op.like 操作符来进行模糊查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ----- - ---------- ----- - - ---
这段代码将查询所有 name 字段中包含“张”的用户记录。在 where 中,我们将 name 字段设置为 Op.like 操作符,并传入一个字符串‘%张%’作为参数,从而实现模糊查询。
Op.notLike 非模糊查询
我们可以使用 Op.notLike 操作符来进行非模糊查询。下面是一个示例代码:
----- ----- - ----- ------------------- ------ - ----- - ------------- ----- - - ---
这段代码将查询所有 name 字段中不包含“张”的用户记录。在 where 中,我们将 name 字段设置为 Op.notLike 操作符,并传入一个字符串‘%张%’作为参数,从而实现非模糊查询。
总结
本文介绍了 Sequelize 中使用 Op.eq、Op.ne 等操作符进行数据的等值查询及不等查询的方法,同时也介绍了 Sequelize 中其他常用的操作符,如 Op.gt、Op.gte、Op.lt、Op.lte、Op.in、Op.notIn、Op.like 和 Op.notLike。希望本文能够帮助大家在 Sequelize 的开发中更好地使用操作符,提高开发效率。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64fc1838f6b2d6eab3207396