如何在 MongoDB 中使用 GraphQL 进行查询

阅读时长 5 分钟读完

GraphQL 是一个用于 API 的查询语言,它通过定义类型和字段的方式来描述数据。它可以让前端开发者更加灵活地获取数据,而无需依赖后端的 API 接口。MongoDB 是一个流行的 NoSQL 数据库,它支持 JSON 格式的数据存储。在本文中,我们将介绍如何在 MongoDB 中使用 GraphQL 进行查询。

安装依赖

首先,我们需要安装所需要的依赖。我们需要安装以下几个包:

  • graphql:GraphQL 的核心包。
  • graphql-yoga:一个用于构建 GraphQL 服务器的库。
  • mongodb:MongoDB 的 Node.js 驱动程序。

连接 MongoDB 数据库

我们需要先连接到 MongoDB 数据库。这里我们使用 mongodb 包提供的 MongoClient 类进行连接。我们需要传入 MongoDB 数据库的连接字符串。

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

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

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

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

--------

定义 GraphQL Schema

接下来,我们需要定义 GraphQL Schema。Schema 是一个定义数据类型和查询字段的对象。我们定义一个 Query 类型,它包含一个 books 字段,用于查询图书数据。

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

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

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

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

在上面的代码中,我们定义了一个 Book 类型,包含 titleauthor 两个字段。我们还定义了一个 Query 类型,包含一个 books 字段,它返回一个 Book 类型的数组。

resolvers 对象中,我们实现了 books 字段的查询逻辑。我们通过 client.db() 获取到 MongoDB 数据库对象,然后使用 find() 方法查询所有图书数据,并将结果转换为数组返回。

创建 GraphQL 服务器

接下来,我们需要创建一个 GraphQL 服务器。我们使用 graphql-yoga 包提供的 GraphQLServer 类创建服务器。我们需要传入 Schema 和 Resolver 对象。

查询数据

现在我们可以使用 GraphQL 查询语言查询数据了。我们可以使用 Playground 工具进行查询。运行以下命令启动 Playground:

在 Playground 中,我们可以使用以下查询语句查询所有图书数据:

示例代码

完整的示例代码如下:

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

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

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

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

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

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

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

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

--------

结论

在本文中,我们介绍了如何在 MongoDB 中使用 GraphQL 进行查询。我们先连接到 MongoDB 数据库,然后定义 GraphQL Schema 和 Resolver,最后创建 GraphQL 服务器。使用 GraphQL 查询语言查询数据非常方便,可以大大简化前端开发工作。

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

纠错
反馈