npm 包 mongoose-autopopulate 使用教程

阅读时长 5 分钟读完

在 Node.js 的 Web 应用程序中,数据库是不可或缺的一部分。使用 MongoDB 作为数据库是一个很好的选择。然而,如何从 MongoDB 中检索数据到应用程序的前端可能会是一个有点棘手的问题。在这种情况下,mongoose-autopopulate 是一个能够解决这个问题的好的 npm 包。

mongoose-autopopulate 简介

mongoose-autopopulate 是一个 Mongoose 的插件,它为在所有的子文档中自动填充其他集合中的记录提供了深度 populating 的支持。这个包也允许对单个或多个嵌套子文档进行查询,在查询后自动填充指定的嵌套字段。

安装

在你的应用程序中使用 mongoose-autopopulate 非常简单,你只需在命令行中执行以下命令安装:

使用示例

让我们看一个例子,假设我们有一个名为 authors 的集合和一个名为 books 的集合。每本书都有一个作者,并且我们希望在获取一本书的时候同时获取它的作者信息,可以使用以下方法:

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

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

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

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

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

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

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

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

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

在这个例子中,我们定义了两个模式:一个是 author 模式,另一个是 book 模式。author 模式只有一个字段 name,而 book 模式有三个字段:titleauthorpagesauthor 字段是一个引用,它指向 authors 集合中的其中一个作者记录。注意到我们在 author 字段中指定了 autopopulate: true。这告诉了插件在查询 book 对象时,自动填充 author 字段。

使用索引匹配填充嵌套字段

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

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

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

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

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

如上所示,提前就可以定义好嵌套填充好的字段employees 内存储子文档,那么在使用时就可以使用自动填充机制。

另外,使用查询匹配的方式自动填充嵌套字段进行批量查询:

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

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

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

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

这里实现了公司的更新操作,同时更新其中关联的雇员信息,而且信息仅仅需要一次查询即可完成。

终点

mongoose-autopopulate 是一个非常有用的 npm 包,它使获取 MongoDB 数据变得更加自动化和容易。它的使用非常简单,只要按照上面的教程即可。在此基础上,你可以很容易地进行定制化,以满足你的应用程序的需求。

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

纠错
反馈