我想在两个节点之间添加一个关系,但前提是该关系不存在。例如:
当前,node1和node2之间的关系具有以下属性: time:41221323,link:www.google.com
我试图添加具有不同属性的关系,例如:
time:5344241,link:www.google.com
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想保留关系的原始属性。
你想要MERGEorCREATE UNIQUE子句:
http://neo4j.com/docs/stable/query-merge.html
http://neo4j.com/docs/stable/query-create-unique.html
另请注意,MERGE带有附加功能ON CREATE SET,ON MATCH SET因此您可以控制何时设置属性。
我相信,如果您将特定属性作为匹配语法的一部分,它不会仅在所有属性完全匹配时创建。
您可以使用以下CQL查询:
Run Code Online (Sandbox Code Playgroud)MATCH(a: startNodeLabel {attributes to match start node}) MATCH(m:endNodeLabel {attributes to match end node}) MERGE(a)-[:relationshipName]->(m)
如果a和m之间不存在关系,则上面的merge语句将在节点a和m之间创建关系。