neo4j节点之间的关系使用公共属性(id)而不创建更多节点

时间:2015-04-13 09:17:08

标签: neo4j cypher

我一直在尝试将具有相同ID的两个不同节点(进程)和(进程框架)匹配在一起。我想在那些之间建立一种关系(称为:SAME)。 该查询有效,但它创建了我想要的进程数量的3倍,我无法找出原因:

MATCH (p:Process) 
MATCH (pcf:ProcessFramework) 
WHERE HAS (p.id) AND HAS (pcf.pcf_id) AND p.id=pcf.pcf_id
MERGE (p)<-[:same]-(pf)
return p,pcf

我也尝试使用CREATE UNIQUE而不是MERGE,但结果相同。我不是开发人员,所以也许我犯了一个非常明显的错误,但我真的看不到它! 谢谢!

1 个答案:

答案 0 :(得分:0)

您的查询中有拼写错误,您使用pfpcf中应使用MERGE

我也会将其更改为此并确保您在:ProcessFramework(pcf_id)

上有索引
MATCH (p:Process) 
MATCH (pcf:ProcessFramework) 
WHERE p.id=pcf.pcf_id
MERGE (p)<-[:same]-(pcf)
return p,pcf