npm 包 graphql-compose-mongo 使用教程

阅读时长 6 分钟读完

在前端开发中,使用 GraphQL 查询数据库是非常普遍的需求。而在使用 MongoDB 作为数据库时,可以使用 graphql-compose-mongo 包来完成 GraphQL 和 MongoDB 的查询对接。

安装

使用 npm 安装 graphql-compose-mongo 包:

基础使用

graphql-compose-mongo 提供了非常方便的 API 来连接 MongoDB 和 GraphQL,同时还包括一些独特的功能,如过滤器、分页和排序等。

创建 schema

首先,我们需要创建 schema。

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

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

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

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

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

在这个例子中,我们使用 createConnection() 方法创建了与 MongoDB 的连接,然后定义了 User 作为我们要查询的表。接着,我们使用 composeMongoose() 方法将 User 转换为 GraphQL 的对象类型,并创建了查询和变更的 Resolver。

创建 server

为了使用 GraphQL,我们需要创建一个服务器。我们可以使用 Node.js 自带的 http 模块来实现。

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

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

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

在这个例子中,我们使用 createHttpServer() 方法来创建一个 HTTP 服务器,并将我们之前创建的 userGraphQLSchema 作为参数传入。最后,我们监听端口 4000 并启动服务器。

查询数据

现在我们可以开始查询 MongoDB 数据库了。我们可以在浏览器的地址栏访问 http://localhost:4000/graphql,并在查询操作区域输入查询语句,如下所示:

这条语句将查询所有用户的名字和年龄。

变更数据

除了查询之外,我们还可以进行变更操作,如添加、更新和删除。下面是一个添加用户的例子:

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

这条语句将会向 User 表中添加一条新记录。

过滤器、分页和排序

graphql-compose-mongo 还提供了一些有用的功能,如过滤器、分页和排序。

过滤器

假设我们需要查询年龄大于等于 18 岁的用户,可以使用如下查询:

这个查询将会返回年龄大于 18 岁的用户的名字和年龄。

分页

如果数据量非常大,我们可能需要分页来避免一次性查询过多的数据。下面是一个分页查询的例子:

这个查询将会返回前 10 条用户的名字和年龄。这个查询中的 skip 和 limit 参数可以控制从哪里开始和查询多少条记录。

排序

我们可以按照某个字段对结果进行排序。例如,我们想要按照年龄降序排列:

这个查询将会返回按照年龄降序排列的所有用户的名字和年龄。

结论

graphql-compose-mongo 包提供了非常强大的工具来将 MongoDB 和 GraphQL 连接起来,使得我们可以方便地查询 MongoDB 数据库。它还包括一些高级功能,如过滤器、分页和排序,使得我们可以更好地控制结果集。

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

纠错
反馈