npm 包 neo4j-graphql-binding 使用教程

阅读时长 6 分钟读完

介绍

Neo4j 是一个图数据库,具有强大和灵活的数据建模和查询能力。然而,与其它 SQL 数据库相比,图数据库需要一种新的查询语言和工具。Neo4j-graphql-binding 是一个 npm 包,它允许用户使用 GraphQL 语言来查询 Neo4j 数据库。在这篇文章中,我们将讲述 npm 包 neo4j-graphql-binding 的安装和使用。

安装

首先,需要安装 Neo4j 数据库并运行。运行 Neo4j 数据库所需的详细信息在此处有描述:https://neo4j.com/docs/。

其次,需要安装 npm 包 neo4j-graphql-binding。可以通过以下命令来完成安装:

基础用法

为了将 Neo4j 数据库与 GraphQL 语言结合起来,neo4j-graphql-binding 提供了 Query 和 Mutation 类。它们允许使用 GraphQL 语言执行查询和更新操作。

以下是一个使用 Query 类查询所有电影的示例:

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

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

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

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

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

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

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

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

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

在上面的示例中,使用了 makeAugmentedSchema 函数将 typeDefs 传递给一个 GraphQL schema。然后,定义了一个查询操作,该操作允许传递 title 变量,并返回 Movie 类型的数组。最后,通过 run 函数在数据库中运行查询,并打印出结果。

进阶用法

neo4j-graphql-binding 还提供了一些快捷方式和增强功能,使得查询和更新操作更加方便和灵活。

例如,以下查询代码演示了如何使用 @cypher 自定义查询:

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

在上面的示例中,使用 cypher 语言编写了一个查询语句,以获取与电影相关的演员信息。通过在查询中使用 @cypher( statement ) 注释,将查询语句嵌入到 GraphQL 查询中。

neo4j-graphql-binding 还支持自定义类型和 mutation 操作:

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

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

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

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

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

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

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

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

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

上面的示例定义了一个 Director 类型,并在 Mutation 中添加了一个 CreateDirector 和 UpdateDirector 操作。然后,分别使用 Query 和 Mutation 类查询和更新 Director 类型。

结论

neo4j-graphql-binding 使得 Neo4j 数据库与 GraphQL 语言结合起来变得更加容易。使用它,可以更加灵活地操作图数据库。在使用此 npm 包时,请查看其官方文档来了解更多详细信息:https://github.com/neo4j-graphql/neo4j-graphql-binding#readme。

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

纠错
反馈