介绍
Neo4j 是一个图数据库,具有强大和灵活的数据建模和查询能力。然而,与其它 SQL 数据库相比,图数据库需要一种新的查询语言和工具。Neo4j-graphql-binding 是一个 npm 包,它允许用户使用 GraphQL 语言来查询 Neo4j 数据库。在这篇文章中,我们将讲述 npm 包 neo4j-graphql-binding 的安装和使用。
安装
首先,需要安装 Neo4j 数据库并运行。运行 Neo4j 数据库所需的详细信息在此处有描述:https://neo4j.com/docs/。
其次,需要安装 npm 包 neo4j-graphql-binding。可以通过以下命令来完成安装:
npm install 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