我有一个neo4j架构,其中我有3个节点。例如P,B,C
我想写一个合并查询,以便
MERGE (p)-[:has_b]->(b),
MERGE (p)-[:has_c]->(c1),
MERGE (p)-[:has_c]->(c2)
其中c1和c2是具有不同属性值的c节点的实例。
即。合并所有三种关系。
如果3个合并查询中的任何一个创建了新节点,则所有关系都应使用新创建的p节点。
如果我只使用
两个关系,我可以实现这个目标(c)<-[:has_c]-MERGE (p)-[:has_b]->(b)
如何在3个关系中做任何建议吗?
仅供参考,我使用的py2neo根本没用。
答案 0 :(得分:1)
节点没有实例。节点是一个节点,它有一个标签。
您可以先MERGE
您的节点确保它们存在,并且所有关系都使用相同的p
:
MERGE (p:LabelA {k: "v"})
MERGE (b:LabelB {k: "v"})
MERGE (c1:LabelC {k: "v"})
MERGE (c2:LabelC {k: "v"})
MERGE (p)-[:has_b]->(b)
MERGE (p)-[:has_c]->(c1)
MERGE (p)-[:has_c]->(c2)
这将只创建一次节点和关系。