在 Web 应用程序中,处理收入和支出数据是非常重要的。在本文中,我们将学习如何使用 Sequelize ORM 从数据库中获取过去 30 天的收入和支出总额。Sequelize 是一个 Node.js ORM,它可以与多种关系型数据库一起使用,包括 MySQL,PostgreSQL 和 SQLite。
准备工作
在开始之前,确保你已经安装了最新版本的 Node.js 和 Sequelize。如果你还没有安装,可以从官方网站下载并参考官方文档进行安装。
创建数据模型
首先,我们需要创建一个数据模型来存储收入和支出数据。我们将使用 Sequelize CLI 工具来创建一个名为 transactions 的模型。在命令行中输入以下命令:
npx sequelize-cli model:generate --name transaction --attributes amount:decimal,type:string
这将创建一个包含 amount 和 type 字段的模型。amount 将作为交易金额,type 将作为交易类型(收入或支出)。
在模型文件中,我们需要稍微修改一下。打开 models/transaction.js 文件,使用 Sequelize 数据类型将 amount 更改为 DECIMAL(10, 2)。我们还需要对模型添加一个 createdAt 字段来跟踪交易的创建日期。修改后的代码如下:
-- -------------------- ---- ------- ---- -------- ----- - ----- - - --------------------- -------------- - ----------- ---------- -- - ----- ----------- ------- ----- - ------ ----------------- - - -- ------------------ ------- - ----- --------------------- --- ---------- ----- -- ----- - ----- ----------------- ---------- ----- -- ---------- - ----- ------------------- ------------- -------------- ---------- ----- - -- - ---------- ---------- -------------- --- ------ ------------ --
填充数据库
我们将添加一些测试数据来测试我们的查询。打开命令行并运行以下命令:
npx sequelize-cli seed:generate --name demo-transactions
这将在 seeds 文件夹下创建一个名为 demo-transactions.js 的种子文件。打开该文件,并使用以下示例代码填充我们的数据库:
-- -------------------- ---- ------- ---- -------- ----- ----- - ----------------- -------------- - - --- ----- ---------------- ---------- -- - ----- ----------------------------------------- - - ------- ------------------------ ----- ----- --------- ---------- --- ------ -- - ------- ------------------------ ----- ----- --------- ---------- --- ------ -- - ------- ------------------------ ---- ----- ---------- ---------- --- ------ -- - ------- ------------------------ ----- ----- ---------- ---------- --- ------ -- - ------- ------------------------ ----- ----- --------- ---------- ------------------ -- - ------- ------------------------ ----- ----- --------- ---------- ------------------ -- - ------- ------------------------ ---- ----- ---------- ---------- ------------------ -- - ------- ------------------------ ---- ----- ---------- ---------- ------------------ - -- ---- -- ----- ----- ---------------- ---------- -- - ----- ----------------------------------------- ----- ---- - --
保存文件并运行以下命令来填充数据库:
npx sequelize-cli db:seed:all
现在,我们已经添加了一些测试数据到我们的数据库中,可以使用 Sequelize 来查询过去 30 天的总收入和总支出。
查询收入和支出
为了获取过去 30 天的总收入和总支出,我们需要使用 Sequelize 的聚合功能。我们首先需要导入 Sequelize 和我们的数据模型:
const Sequelize = require('sequelize'); const { Transaction } = require('./models');
然后我们可以使用 Sequelize 的 where 和 literal 方法来检索过去 30 天的数据。代码如下:
-- -------------------- ---- ------- ----- --------- - --- ------- ------------------------------------- - ---- ----- - -- - - ---------- ----- ------ - ----- --------------------- ----------- - -------------------- ------------------------- -------- -- ------ - ---------- - --------- ---------- --------- --- ------ - -- ------ -------- --- --------------------
我们首先计算出从今天回退 30 天的日期,然后使用 Sequelize.fn 和 Sequelize.col 函数将 amount 字段作为参数传递给 sum 函数。我们还使用 where 子句来筛选出日期范围内的记录,并通过 group 子句按交易类型分组。
运行代码后,你应该会看到类似以下的输出:
-- -------------------- ---- ------- - - ----- ---------- ------ ------- -- - ----- --------- ------ -------- - -
现在,您可以根据需要调整查询条件,并使用 Sequelize 来处理收入和支出数据,以便将它们呈现给您的应用程序用户。
结论
在本文中,我们学习了如何使用 Sequelize ORM 从数据库中提取过去 30 天的收入和支出总额。这是一个非常实用的查询方法,可以帮助您轻松地处理财务数据。我们还讨论了如何使用 Sequelize CLI 创建数据模型和填充数据库。希望本文对您有所帮助,感谢阅读!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67397bdcdee7df6752420a76