Sequelize 获取过去的 30 天收入和支出的总额

阅读时长 7 分钟读完

在 Web 应用程序中,处理收入和支出数据是非常重要的。在本文中,我们将学习如何使用 Sequelize ORM 从数据库中获取过去 30 天的收入和支出总额。Sequelize 是一个 Node.js ORM,它可以与多种关系型数据库一起使用,包括 MySQL,PostgreSQL 和 SQLite。

准备工作

在开始之前,确保你已经安装了最新版本的 Node.js 和 Sequelize。如果你还没有安装,可以从官方网站下载并参考官方文档进行安装。

创建数据模型

首先,我们需要创建一个数据模型来存储收入和支出数据。我们将使用 Sequelize CLI 工具来创建一个名为 transactions 的模型。在命令行中输入以下命令:

这将创建一个包含 amount 和 type 字段的模型。amount 将作为交易金额,type 将作为交易类型(收入或支出)。

在模型文件中,我们需要稍微修改一下。打开 models/transaction.js 文件,使用 Sequelize 数据类型将 amount 更改为 DECIMAL(10, 2)。我们还需要对模型添加一个 createdAt 字段来跟踪交易的创建日期。修改后的代码如下:

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

填充数据库

我们将添加一些测试数据来测试我们的查询。打开命令行并运行以下命令:

这将在 seeds 文件夹下创建一个名为 demo-transactions.js 的种子文件。打开该文件,并使用以下示例代码填充我们的数据库:

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

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

保存文件并运行以下命令来填充数据库:

现在,我们已经添加了一些测试数据到我们的数据库中,可以使用 Sequelize 来查询过去 30 天的总收入和总支出。

查询收入和支出

为了获取过去 30 天的总收入和总支出,我们需要使用 Sequelize 的聚合功能。我们首先需要导入 Sequelize 和我们的数据模型:

然后我们可以使用 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

纠错
反馈