问题描述
在 Neo4j 中,我可以使用 APOC 过程“apoc.create.vNode”来创建虚拟节点。如何检查虚拟节点是否已存在? 我有一个列表,其中包含有关节点之间依赖关系的信息,例如 [[node1,[node2,node3,node4]],[node 5,node6]] ...],这意味着 node1 依赖于节点2、节点3和节点4; node2 依赖于 node5 和 node6。 从这个列表中,我想创建一个虚拟图。问题是当我 UNWIND 列表时,它会多次创建具有相同名称的虚拟节点。请参阅下面的我的密码。 我没有找到检查虚拟节点是否已创建的方法。
.....
UNWIND outputList AS dependency
WITH head(dependency) AS Data_Node,head(tail(dependency)) AS Dependent_Data_Nodes
CALL apoc.do.when(apoc.create.vNode(["Datanode"],{name:Data_Node})={},'CALL apoc.cr eate.vNode(["Datanode"],{name:Data_Node}) yield node AS a','RETURN apoc.create.vNode(["Datanode"],{name:Data_Node}) AS a',{Data_Node:Data_Node}
)
yield value
WITH value.a AS targetNode,Dependent_Data_Nodes
UNWIND Dependent_Data_Nodes AS Dependent_Data_Node
CALL apoc.do.when(apoc.create.vNode(["Datanode"],{name:Dependent_Data_Node})={},'CALL apoc.create.vNode(["Datanode"],{name:Dependent_Data_Node}) yield node AS b',{name:Dependent_Data_Node}) AS b',{Dependent_Data_Node:Dependent_Data_Node}
)
yield value
WITH value.b AS startNode,targetNode
CALL apoc.create.vRelationship(startNode,"TRANSFORM_TO",{},targetNode) yield rel
RETURN *```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)