Neo4j:多个关系合并问题



我有一个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,这根本没有帮助。

节点没有实例。节点是一个节点,它有一个标签。

您可以先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)

这将仅创建一次节点和关系。

最新更新