Neo4j Cypher:如何设置关系的StartNode或endNode?

时间:2015-03-03 13:20:31

标签: neo4j cypher relationship

假设我们有两个节点n和m

是否可以将m设置为所有关系的startNode,其中n为StartNode n- [r] - >()

关系可以有不同的类型。

是否可以只使用一个密码请求?

2 个答案:

答案 0 :(得分:2)

不,您无法为特定关系重新分配起始节点。您可以做的是删除该关系,然后创建指向您想要它们的新关系。

例如:

MATCH (n { id: "startpoint"})-[r]->(), (m {id: "endpoint"})
MERGE (n)-[:newRelationship]->(m)
DELETE r;

如果:newRelationship的类型可能会因r而改变

,则此查询必须变得更加复杂

答案 1 :(得分:0)

示例数据:

CREATE CONSTRAINT ON (city:City) ASSERT city.name IS UNIQUE;
CREATE CONSTRAINT ON (state:State) ASSERT state.name IS UNIQUE;

MERGE (pb:City {name: 'Paderborn'}) 
MERGE (state1:State {name: 'Bavaria'})
MERGE (state2:State {name: 'North Rhine-Westphalia'}) 
MERGE (pb)-[:LOCATED_IN]->(state1);

以下语句将删除现有关系并创建一个新关系:

MATCH (n { name: "Paderborn"})-[r]->(), (state {name: "Bavaria"})
MERGE (n)-[:LOCATED_IN]->(state)
DELETE r;