📜  sequelize 从 moel 读取 - Javascript (1)

📅  最后修改于: 2023-12-03 15:20:06.032000             🧑  作者: Mango

Sequelize 从 Model 读取 - JavaScript

Sequelize 是一款基于 Node.js 的 ORM(对象关系映射)库,用于与不同类型的 SQL 数据库交互。它提供了一种简单、直观的方式来执行数据库操作,并且自带一些有效的关联和事务处理机制。本文将详细介绍 Sequelize 如何从 Model 中读取数据。

读取单条记录

要读取单条记录,可以使用以下的代码来查询数据库中的数据:

Model.findOne({ where: { id: 1 } }).then((data) => {
  console.log(data);
});

上述代码会在 Model 中查找一行 ID 为 1 的记录,并将查询结果打印到控制台上。在调用 findOne() 方法时,我们需要提供一个 where 对象,其中包含一个查询条件表达式。

读取多条记录

要读取多条记录,可以使用以下的代码来查询数据库中的数据:

Model.findAll({ where: { status: 'active' } }).then((data) => {
  console.log(data);
});

上述代码会在 Model 中查找所有处于 'active' 状态的记录,并将查询结果打印到控制台上。与 findOne() 方法类似,调用 findAll() 方法时也需要提供 where 对象,不同的是,findAll() 方法返回多条记录的数组。

读取特定字段

如果想要只查询 Model 中的特定字段,可以使用以下的代码来查询数据库中的数据:

Model.findAll({ attributes: ['id', 'name'] }).then((data) => {
  console.log(data);
});

上述代码会在 Model 中查找所有记录的 ID 和 Name 字段,并将查询结果打印到控制台上。调用 findAll() 方法时,只需要在 attributes 属性中指定要查询的字段即可。

读取分页数据

如果要对查询结果进行分页,可以使用以下的代码来查询数据库中的数据:

const pageSize = 10; // 每页显示记录数
const currentPage = 1; // 当前页码

Model.findAll({
  limit: pageSize, // 每页显示记录数
  offset: (currentPage - 1) * pageSize, // 从第几条记录开始显示
  order: [['createdAt', 'DESC']], // 按创建时间降序排列
}).then((data) => {
  console.log(data);
});

上述代码会在 Model 中查询第一页(每页显示 10 条记录)的数据,并按创建时间降序排列。在调用 findAll() 方法时,我们需要提供一个 offset 对象,其中包含起始偏移量和显示记录数。

总结

在 Sequilize 中,我们可以使用简单、直观的方式来执行数据库操作,并且不需要编写复杂的 SQL 语句。上述的代码片段将演示了从 Model 中读取单条记录、多条记录、特定字段和分页数据的方法。