Fastify 中如何使用 MongoDB 及 Mongoose 操作数据库

阅读时长 9 分钟读完

引言

Fastify 是目前比较火热的 Node.js 框架之一,因为其设计简洁,速度极快而被广泛应用。在 Fastify 项目中,使用 MongoDB 数据库是非常常见的一种情况,而 Mongoose 则是 MongoDB 的 ORM 工具,以更加优雅的方式操作 MongoDB 数据库。在本篇文章中,我们将学习如何在 Fastify 中使用 MongoDB 以及 Mongoose 进行数据库操作。

准备工作

在开始之前,你需要先安装 Node.js 环境,并且你需要在你的电脑上安装 MongoDB 数据库。如果你还没有安装 MongoDB,可以到 MongoDB 官网 下载并安装。

另外,你还需要安装 MongoDB 的 Node.js 驱动程序,使用 npm 命令可以方便地进行安装:

而 Mongoose 也是可以使用 npm 进行安装的:

现在,我们可以开始写代码了。

使用 MongoDB

连接 MongoDB

在 Fastify 项目中使用 MongoDB,首先需要连接数据库。我们可以使用 Node.js 的 MongoDB 驱动程序进行连接。连接代码如下:

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

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

在上述代码中,MongoClient.connect 函数用于连接 MongoDB 数据库,接受两个参数:数据库连接地址和回调函数。如果连接失败,则会输出错误信息。如果连接成功,则会输出 MongoDB 已连接,并且你可以在回调函数中对数据库进行操作。最后,我们还需要关闭数据库连接。

插入数据

在连接数据库之后,我们就可以向数据库中插入数据了。使用 MongoDB 驱动程序,插入数据的代码如下:

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

在上述代码中,collection 对象用于获取 MongoDB 数据库中的集合(表)。接下来我们使用 insertOne 方法向集合中插入一条数据,如果插入成功,则 result 参数会返回插入数据的信息,否则输出错误信息。

查询数据

在插入了数据之后,我们又可以开始查询数据了。使用 MongoDB 驱动程序,查询数据的代码如下:

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

在上述代码中,find 方法用于查询集合中满足条件的数据,并使用 toArray 方法将查询结果转换为一个数组。如果查询成功,则 docs 参数会返回查询结果,否则输出错误信息。

更新数据

在数据库中,我们有时需要更新某些数据。使用 MongoDB 驱动程序,更新数据的代码如下:

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

在上述代码中,updateOne 方法用于更新集合中满足条件的第一条数据,并使用 $set 操作符设置需要更新的字段值。如果更新成功,则 result 参数会返回更新数据的信息,否则输出错误信息。

删除数据

在数据库中,我们有时也需要删除某些数据。使用 MongoDB 驱动程序,删除数据的代码如下:

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

在上述代码中,deleteOne 方法用于删除集合中满足条件的数据。如果删除成功,则 result 参数会返回删除数据的信息,否则输出错误信息。

以上就是使用 MongoDB 驱动程序在 Fastify 中操作数据库的基本代码。而 Mongoose 则可以让我们更加优雅地进行数据库操作。接下来,我们来了解一下 Mongoose,以及如何在 Fastify 中使用。

使用 Mongoose

连接数据库

在使用 Mongoose 操作 MongoDB 之前,我们需要先连接数据库。连接 MongoDB 的代码与上文所示相同。一旦连接成功,我们就可以在回调函数中使用 Mongoose 初始化模型,如下:

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

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

在上述代码中,我们首先引入了 Mongoose 库,并使用 mongoose.connect 方法连接数据库。Mongoose 提供了一个类似 Schema 的机制来定义模型,我们可以在数据库连接成功时初始化模型,然后开始执行数据库操作。

定义模型

在 Mongoose 中,每个模型都对应一个 MongoDB 集合。我们可以使用 Mongoose 定义模型,并关联到对应的集合中。模型的常规创建过程如下:

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

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

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

在上述代码中,我们首先使用 mongoose.Schema 方法定义了数据模型之后,使用 mongoose.model 方法创建出一个名为 user 的模型,该模型对应了一个名为 users 的集合。在接下来的数据库操作中,我们就可以使用 UserModel 操作 users 集合。

插入数据

在 Mongoose 中,我们可以使用 create 方法向数据库中插入数据,代码如下:

在上述代码中,create 方法用于向数据库中插入一条数据,并且会返回这个新创建的文档。如果创建失败,则会输出错误信息。

查询数据

在 Mongoose 中,我们使用 find 方法查询数据,代码如下:

在上述代码中,find 方法用于查询 users 集合中名为 user 的文档。查询结果会以数组形式返回。

更新数据

在 Mongoose 中,我们可以使用 updateOne 方法更新数据,代码如下:

在上述代码中,updateOne 方法用于更新 users 集合中名为 user 的文档,将其年龄更改为 21。如果更新成功,则输出操作结果。

删除数据

在 Mongoose 中,我们使用 deleteOne 方法删除数据,代码如下:

在上述代码中,deleteOne 方法将删除 users 集合中名为 user 的文档。如果删除成功,则输出操作结果。

总结

本篇文章介绍了在 Fastify 中使用 MongoDB 以及 Mongoose 进行数据库操作的方法。使用 MongoDB 驱动程序,我们可以直接与 MongoDB 进行交互,进行基本的数据插入、查询、更新和删除操作。而 Mongoose(MongoDB 的 ODM 工具)则可以提供更加优雅的方式进行数据库操作,方便地定义模型并进行 CURD 操作。

如果你想更加深入学习 Fastify 或 MongoDB,也欢迎查看相关文献,了解更多信息。

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

纠错
反馈