如何通过 GraphQL 查询 MongoDB 文档

阅读时长 5 分钟读完

GraphQL 是一种用于 API 的查询语言,它提供了一种更加高效、强大、灵活的数据查询方式。MongoDB 是一种流行的 NoSQL 数据库,它在 Web 应用程序中被广泛使用。本文将介绍如何使用 GraphQL 查询 MongoDB 文档,以及如何在前端应用程序中使用这些数据。

准备工作

在开始之前,您需要安装以下软件:

  • Node.js
  • MongoDB
  • GraphQL

您还需要选择一个 GraphQL 客户端。在本文中,我们将使用 Apollo Client。您可以通过以下命令来安装:

连接 MongoDB 数据库

在开始查询之前,我们需要连接到 MongoDB 数据库。我们将使用 Mongoose,这是一个 MongoDB 对象文档映射器。您可以使用以下命令来安装 Mongoose:

然后,我们可以编写以下代码来连接数据库:

这将连接到名为“mydatabase”的本地 MongoDB 数据库。

创建 GraphQL Schema

现在我们需要创建一个 GraphQL Schema,以便定义我们要查询的数据。在本例中,我们将创建一个简单的“User”模型,并为其定义 GraphQL 类型。以下是我们的代码:

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

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

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

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

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

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

在这个例子中,我们定义了一个“User”类型,它有一个 ID、一个名称和一个电子邮件地址。我们还定义了一个“Query”类型,它允许我们查询所有用户。我们还提供了一个名为“users”的解析器函数,它将返回所有用户。

创建 GraphQL 服务器

现在我们需要创建一个 GraphQL 服务器,以便我们可以查询数据。我们将使用 Express 和 Apollo Server 来创建服务器。以下是我们的代码:

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

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

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

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

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

在这个例子中,我们创建了一个 Express 应用程序,然后创建了一个 Apollo Server。我们将我们之前创建的 GraphQL Schema 传递给服务器,并将 User 模型传递给上下文。最后,我们将服务器应用到 Express 应用程序上,并在端口 4000 上启动应用程序。

查询数据

现在我们可以查询我们的数据了。我们可以使用 GraphQL Playground 或任何其他 GraphQL 客户端来查询数据。以下是一些示例查询:

这将返回所有用户的 ID、名称和电子邮件地址。

这将返回 ID 为“123”的用户的名称和电子邮件地址。

结论

通过使用 GraphQL 和 MongoDB,我们可以轻松地查询数据库中的数据,并将其用于我们的前端应用程序。在本文中,我们介绍了如何连接到 MongoDB 数据库、定义 GraphQL Schema、创建 GraphQL 服务器以及查询数据。希望这篇文章对您有所帮助!

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

纠错
反馈