如何在 Neo4j 中检查虚拟节点的存在

问题描述

在 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 (将#修改为@)