Mongoose 中文文档详解

阅读时长 6 分钟读完

如果你正在研究如何将数据库和 Node.js 进行集成,Mongoose 可能是您需要的工具。Mongoose 是一个为 MongoDB 设计的对象文档映射库,它可以让开发人员更加轻松地编写和阅读代码,同时获得有效的数据管理和查询功能。

在我们深入了解 Mongoose 如何工作之前,让我们先来熟悉一下定义一些术语:

  • MongoDB:一个开源、高性能、基于文档的数据库。
  • 文档:在 MongoDB 中,一个文档是由键值对组成的 BJSON 对象。
  • 集合:在 MongoDB 中,文档存储在集合中。
  • Mongoose:一个为 MongoDB 设计的对象文档映射库。

现在,让我们开始学习 Mongoose 的使用。

安装

安装 Mongoose 最简单的方法是使用 npm 命令行。在你的终端中输入以下命令即可:

Mongoose 默认导出一个构造函数。通过调用此构造函数并传递连接地址就可创建数据库连接对象。接下来,我们需要定义一个模式,这个模式定义了数据的结构。Mongoose 模式是一个简单而强大的方法,用于表示 MongoDB 文档中的字段和类型。现在,让我们来创建一个示例模式,在 MongoDB 中创建一个用户集合。

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

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

----- --------- - ---------------------- ------------
展开代码

在这里,我们定义了一个用户模式。它包含了 username, password, email, created 等字段。可以看到,每个字段都有一个类型,这些类型都是 mongodb 数据类型。文档中最重要的字段是 _id, 但是如果你没有定义它,Mongoose 会自动为你生成。现在,我们要创建一个 UserModel,使用上面的 UserSchema。

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

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

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

  -----------------------
---
展开代码

这里我们定义了一个数据请求 addUser、它接收一个用户对象作为参数。我们使用 UserModel 从模型中创建一个新的 Model 实例,然后将其保存到数据库中。

查询

Mongoose 提供了一些方法来查询数据库。下面我们将会介绍使用 Mongoose 进行查询,以及在查询结果中使用 chainable 方法进行过滤和排序。

查询单个文档

如果我们要查询一个文档,只需使用 findOne 方法即可。

查询多个文档

要查询多个文档,只需使用 find 方法。

如果我们想筛选查询结果,可以在查询之后使用链式方法 filter。

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

     ------------------
   ---
展开代码

这里我们使用了两个方法来创建查询:where 和 equals。使用 exec 方法来执行查询命令。

排序

我们还可以对文档集合进行排序,只需使用 sort 方法。

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

     -------------------
   ---
展开代码

在这里,我们调用的是 sort 方法,通过指定一个负号表示降序排列,否则表示升序排列。

更新

Mongoose 使用 update 和 save 方法来更新文档。

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

    -----------------
  -
--
展开代码

在这里,我们使用updateOne方法进行更新。update 方法有三个参数:查询条件、更新的对象、回调函数。

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

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

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

    -------------------------
  ---
---
展开代码

在这里,我们使用 findOne 方法来查询文档对象,然后更新文档属性,最后使用 save 方法保存更改。

删除

剩下的最后一个操作是删除,Mongoose 提供了 deleteOne 和 deleteMany 方法进行删除操作。

在这个例子中,我们删除了用户名为 user123 的文档。

总结

在这篇文章中,我们深入了解了 Mongoose 如何工作,并学习了如何使用它进行数据库管理,包括创建、查询、更新和删除操作。我们了解了文档、集合、模式等概念,并编写了一些示例代码来演示这些概念的使用方法。这些知识将会有助于您更好地了解 Mongoose 的使用方法,从而更好地管理 MongoDB 数据库。

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

纠错
反馈

纠错反馈