Sequelize 如何使用 where 子句

Sequelize 是一个 Node.js ORM(Object-Relational Mapping)库,用于管理 SQL 数据库中的数据。在使用 Sequelize 进行数据操作时,where 子句是非常常见的操作,本文将详细讲解 Sequelize 如何使用 where 子句。

Sequelize 简介

Sequelize 是一款支持多种 SQL 数据库的 Node.js ORM 库,其完全支持 Promises 和 异步/同步。Sequelize 的主要功能包括:

  • 模型定义:定义模型并进行数据库迁移;
  • 关系:支持多种关系模式,包括一对一、一对多和多对多;
  • 查询:支持多种查询方式,包括原始查询、ORM 查询和传统 SQL 查询;
  • 事务:支持事务;
  • 日期处理:支持多种日期处理方式;
  • 同步:支持同步操作;
  • 数据验证:支持数据验证;
  • 钩子:支持钩子操作。

where 子句的基本使用

Sequelize 提供了多种方法,可以在查询中使用 where 子句。下面是其中一种简单的使用方式:

上面的查询将返回数据库中 usernameusername 的所有结果。

findAll 方法是 Sequelize 中常用的查询方法之一,它返回与查询条件匹配的所有行。这个查询包含了一个 where 子句,其中 "username": "username" 部分表示要查找 Modelusername 字段为 username 的所有数据。

where 子句的操作符

Sequelize 支持多种操作符,您可以在 where 子句中使用它们。

比较操作符

Sequelize 提供了多种比较操作符,可用于比较几乎所有类型的数据。

  • $eq 比较操作符:等于;
  • $ne 比较操作符:不等于;
  • $gt 比较操作符:大于;
  • $gte 比较操作符:大于或等于;
  • $lt 比较操作符:小于;
  • $lte 比较操作符:小于或等于;
  • $between 比较操作符:在两个给定值之间;
  • $notBetween 比较操作符:不在两个给定值之间;
  • $in 比较操作符:在一个给定集合中;
  • $notIn 比较操作符:不在一个给定集合中;
  • $like 比较操作符:相似性匹配;
  • $notLike 比较操作符:不相似性匹配;
  • $iLike 比较操作符:相似性匹配(不区分大小写);
  • $notILike 比较操作符:不相似性匹配(不区分大小写);
  • $regexp 比较操作符:正则表达式匹配;
  • $notRegexp 比较操作符:不正则表达式匹配;
  • $iRegexp 比较操作符:正则表达式匹配(不区分大小写);
  • $notIRegexp 比较操作符:不正则表达式匹配(不区分大小写);
  • $glob 比较操作符:通配符匹配;
  • $notGlob 比较操作符:不通配符匹配;
  • $col 比较操作符:列名转接。

下面是一个使用 $gt$lt 的查询示例:

上面的查询将返回数据库中 age 字段在 1829 之间的所有结果。

逻辑操作符

Sequelize 中支持多个逻辑操作符,其中包括:

  • $and 逻辑操作符:要求同时满足多个条件;
  • $or 逻辑操作符:或者满足其中一个条件;
  • $not 逻辑操作符:排除指定条件。

下面是一个使用 $or 的查询示例:

上面的查询将返回所有 age 小于 18isDeletedtrue 的数据。

多个操作符组合

多个操作符可以组合使用,从而满足各种查询需求。下面是一个组合多个操作符的查询示例:

上面的查询将返回所有 age 小于 18 或大于 30,且 nameJane 开头的数据。

总结

在 Sequelize 中使用 where 子句是非常常见的操作,本文介绍了 Sequelize where 子句的基本使用和操作符的详细说明,并提供了几个示例。希望对需要使用 Sequelize 的读者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653206147d4982a6eb42b4ed


纠错
反馈