0
我有一個看起來像下面Neo4j的只在合併添加節點創建
MERGE (col)-[:CONNECTS]->(o)
ON CREATE SET col.name = "SOME NAME"
一個暗號現在我想添加下面的節點和關係只有當合並創建(不匹配):
CREATE (o)-[:NEEDS]->(p:anode)
這是如何實現的?
我有一個看起來像下面Neo4j的只在合併添加節點創建
MERGE (col)-[:CONNECTS]->(o)
ON CREATE SET col.name = "SOME NAME"
一個暗號現在我想添加下面的節點和關係只有當合並創建(不匹配):
CREATE (o)-[:NEEDS]->(p:anode)
這是如何實現的?
現在在Cypher中沒有內置的條件創建,我想它會被添加到即將推出的版本中。
現在你可以做一個小技巧,當你創建你的關係時設置一個屬性來告訴它是一個新的創建,然後你對這個屬性做一個foreach/case,創建另一個關係並刪除屬性。
代碼解釋勝於言:
MERGE (col)-[r:CONNECTS]->(o)
ON CREATE SET col.name = "SOME NAME", r.new = 1
FOREACH (x IN CASE WHEN r.new = 1 THEN [1] ELSE [] |
CREATE (o)-[:NEEDS]->(p:anode)
)
REMOVE r.new