Sequelize 中的 Model 查询方法详解

阅读时长 6 分钟读完

Sequelize 是一个优秀的 Node.js ORM(对象关系映射)框架,通过 Sequelize,我们可以快速、简单地操作数据库。在 Sequelize 中,Model 是操作数据的核心,Model 对象可以用来完成许多数据操作,如数据的查询、插入、更新和删除等。本文将详细介绍 Sequelize 中的 Model 查询方法。

Model.findAll

Model.findAll 是 Sequelize 中常用的查询方法之一,该方法用于查询所有满足条件的数据记录,并返回一个包含所有数据的数组。下面是一个使用 Model.findAll 查询所有学生记录的示例代码:

如果需要查询指定条件的数据记录,可以传入一个包含条件信息的对象作为参数。例如,下面是一个查询所有年龄大于等于18的学生记录的示例代码:

在上面的代码中,where 属性指定了查询条件,这里使用了 Op.gte 运算符表示大于等于,可以用其他运算符表示其他条件。

Model.findOne

Model.findOne 方法可以查询满足条件的第一条记录,并返回一个包含其数据的对象。下面是一个使用 Model.findOne 查询年龄等于18的学生记录的示例代码:

在上面的代码中,查询条件指定了年龄等于18,因此只会返回一个符合条件的学生记录。

Model.count

Model.count 方法可以用来统计满足条件的记录数量,并返回一个整数。下面是一个使用 Model.count 统计女性学生数量的示例代码:

在上面的代码中,查询条件指定了性别为女性,返回的 count 变量即为满足条件的学生数量。

Model.max 和 Model.min

Model.max 和 Model.min 方法分别可以用于查询某一列的最大值和最小值。下面是一个使用 Model.max 查询学生年龄最大值的示例代码:

在上面的代码中,max 方法的参数指定了查询的列名,返回的 maxAge 即为最大年龄。

Model.sum

Model.sum 方法可以用于计算某一列的合计值。下面是一个使用 Model.sum 计算所有学生年龄的总和的示例代码:

在上面的代码中,sum 方法的参数指定了计算的列名,返回的 totalAge 即为年龄总和。

Model.findByPk

Model.findByPk 方法可以用于根据主键查询某一条记录。下面是一个使用 Model.findByPk 查询 ID 为 1 的学生记录的示例代码:

在上面的代码中,findByPk 方法的参数指定了主键值为 1,返回的 student 变量即为该学生记录的数据。

Model.findOrCreate

Model.findOrCreate 方法可以在数据库中查找某一条记录,如果存在则返回该记录的数据,否则创建一条新的记录,并返回新创建记录的数据。下面是一个使用 Model.findOrCreate 创建一个新学生记录的示例代码:

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

在上面的代码中,where 属性指定了查询条件,如果数据库中已存在符合条件的记录,则返回该记录的数据,否则使用 defaults 指定的属性创建一个新的记录,并返回新记录的数据。返回的 created 变量表示是否创建了新记录,true 表示创建了新记录,false 表示使用了已有记录。

Model.update

Model.update 方法可以更新满足条件的记录。下面是一个使用 Model.update 更新所有学生的年龄为 20 的示例代码:

在上面的代码中,update 方法的参数为要更新的数据,这里表示将所有学生的年龄更新为 20。返回的 result 变量表示更新操作的结果。

Model.destroy

Model.destroy 方法可以删除满足条件的记录。下面是一个使用 Model.destroy 删除年龄小于 18 的学生记录的示例代码:

在上面的代码中,where 属性指定了查询条件,这里使用了 Op.lt 运算符表示小于,表示要删除年龄小于 18 的学生记录。返回的 result 变量表示删除操作的结果。

总结

本文对 Sequelize 中的 Model 查询方法进行了详细的介绍,包括了常用的查询方法 Model.findAll、Model.findOne、Model.count、Model.max、Model.min、Model.sum、Model.findByPk、Model.findOrCreate、Model.update 和 Model.destroy,这些方法能够满足我们日常开发的数据操作需求,读者可以根据实际需要选择相应的方法使用。

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

纠错
反馈