neo4j结合graphql,解读 graphql 接口的增删改mutation逻辑
发布于 作者:苏南大叔 来源:程序如此灵动~

本文继续描述neo4j
+graphql
接口,解读一下graphql
的mutation
逻辑,也就是增删改逻辑。使用的例子还是官方的migration
代码。从接口的增删改方面,阐述文章的主体逻辑。

大家好,苏南大叔的程序如此灵动博客,本文讨论neo4j
+graphql
官方的migration
例子中的增删改mutation
逻辑。测试环境:@neo4j/graphql@3.12.0
,neo4j-driver@5.1.0
,apollo-server@3.10.3
,neo4j@4.4.10
,node@16.14.2
。
基础代码
本文基础如下文章内容:
测试代码见这里:
本文共有三个类型:User
、Review
、Movie
,描述增删改mutation
逻辑。gql
定义如下:

可能需要的清库代码【执行前,请清楚认知自己在干什么!】如下,参考文章:
单独创建节点
单独创建一个user
节点:
返回值:
这个例子写的也蛮搞笑的,input
输入的内容是username
:name
。必须返回一个节点,而user
就仅仅一个username
可用,所以又把它返回来了。搞笑吧?哈哈。

执行三次,生成了三个节点。证明执行的是create
,而不是merge
。这里的内容,可以参考:
修改节点
看界面的话,where
居然是和input
在一起的。

返回值:

删除节点
这里删除一下user
节点:
输出结果:
按照常理来说,这个删除数据,也不需要啥返回值吧。但是这个graphql
强制要求返回值。而且这个删除就需要一个where
就可以了吧?这里还能输入一个input
(例子里面级联删除了对应的Reviews
数据)。

目前暂时未知这个返回的bookmark
的用途,没有数据被删除的时候,也会返回这个bookmark
。
级联创建数据
这里做个级联创建的例子,一个语句创建三个节点,并建立对应的两条关系。

输出值:
使用user
或者movie
都不可以同时创建三个节点,因为他们彼此不认识。使用user
或者movie
只能同时创建两个节点及其对应关系。
相关链接
- https://newsn.net/say/neo4j-win.html
- https://newsn.net/say/graphql-apollo.html
- https://newsn.net/say/graphql.html
结束语
更多经验文章,请点击苏南大叔的博客:


