Node.js 中如何使用 mongoose 操作 MongoDB 数据库?

阅读时长 7 分钟读完

MongoDB 是一种流行的 NoSQL 数据库,而 Node.js 是一种流行的服务器端 JavaScript 运行环境。在 Node.js 中,我们可以使用 mongoose 这个库来操作 MongoDB 数据库。本文将介绍如何使用 mongoose 来连接 MongoDB 数据库并进行增删改查操作。

安装 mongoose

在开始使用 mongoose 之前,我们需要先安装它。可以使用 npm 命令来安装 mongoose:

连接 MongoDB 数据库

在使用 mongoose 操作 MongoDB 数据库之前,我们需要先连接到 MongoDB 数据库。连接的代码通常放在应用程序的入口文件中。以下是连接到 MongoDB 数据库的示例代码:

在上面的代码中,我们使用 mongoose.connect() 方法来连接到 MongoDB 数据库。第一个参数是数据库的连接字符串,第二个参数是一个配置对象,用于向 mongoose 告知我们使用的 MongoDB 版本和其他选项。在连接成功时,我们会打印一条消息到控制台。

定义 MongoDB 数据模型

在使用 mongoose 操作 MongoDB 数据库之前,我们需要先定义数据模型。数据模型是指我们在 MongoDB 中存储的数据的结构。在 mongoose 中,我们使用 Schema 来定义数据模型。以下是一个示例代码:

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

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

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

在上面的代码中,我们定义了一个名为 Course 的数据模型。它包含了 name、author、tags、date 和 isPublished 这些属性。其中,name 和 author 属性是字符串类型,tags 属性是一个字符串数组,date 属性是一个日期类型,isPublished 属性是一个布尔类型。我们还可以为 date 属性设置默认值为当前时间。

插入数据

在使用 mongoose 向 MongoDB 数据库插入数据时,我们需要先创建一个数据模型的实例,然后调用 save() 方法保存数据。以下是一个示例代码:

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

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

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

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

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

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

在上面的代码中,我们创建了一个名为 Node.js Course 的课程对象,并将它保存到 MongoDB 数据库中。在 save() 方法执行成功后,我们会打印出保存的结果。

查询数据

在使用 mongoose 从 MongoDB 数据库查询数据时,我们可以使用 find()、findOne() 和 findById() 方法。以下是一个示例代码:

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

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

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

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

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

在上面的代码中,我们查询了作者为 Mosh 并且已经发布的课程。我们还使用了 limit()、sort() 和 select() 方法来限制返回结果的数量、排序和选择返回的属性。

更新数据

在使用 mongoose 更新 MongoDB 数据库中的数据时,我们可以使用 updateOne()、updateMany() 和 findByIdAndUpdate() 方法。以下是一个示例代码:

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

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

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

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

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

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

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

在上面的代码中,我们查询了一个课程对象并更新了它的 isPublished 和 author 属性。

删除数据

在使用 mongoose 从 MongoDB 数据库中删除数据时,我们可以使用 deleteOne()、deleteMany() 和 findByIdAndRemove() 方法。以下是一个示例代码:

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

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

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

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

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

在上面的代码中,我们删除了一个课程对象。

总结

在本文中,我们介绍了如何使用 mongoose 在 Node.js 中操作 MongoDB 数据库。我们学习了如何连接到 MongoDB 数据库、定义数据模型、插入数据、查询数据、更新数据和删除数据。mongoose 提供了一种灵活、简单和方便的方法来操作 MongoDB 数据库,使我们能够更轻松地创建高效的服务器端应用程序。

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

纠错
反馈