如果存在关系则建立另一种关系

时间:2016-03-10 09:45:48

标签: neo4j cypher

我想在其他语言中应用与if语句类似的内容,以便在存在关系时再建立另一种关系。

我用一个简单的例子展示了我的想法:假设我们将节点作为人,marriedtoparentof作为关系:

// Nodes and relationships
CREATE (Homer:Person {name:'Homer', gender:'m'})
CREATE (Marge:Person {name:'Marge', gender:'f'})
CREATE (Bart:Person {name:'Bart', gender:'m'})
CREATE
    (Homer)-[:Parentof]->(Bart),
    (Homer)-[:Marriedto]->(Marge)

enter image description here

现在我要做的是检查是否存在父亲关系,然后将Parentof关系应用于母亲。

// Pseudo code:
//If (Father)-[:Parentof]->(Child) And (Father)-[:Married]->(Mother) Then (Mother)-[:Parentof]->(Child)

enter image description here

1 个答案:

答案 0 :(得分:2)

尝试类似:

MATCH (mother)-[:Marriedto]-(father)-[:Parentof]->(child)
MERGE (mother)-[r:Parentof]->(child)
RETURN r

如果您知道已经存在的关系已经存在,则可以使用CREATE代替MERGE