2015-03-03 56 views

回答

2

不,您不能爲某個關係重新分配啓動節點。你可以做的是刪除這種關係,然後創建新的關係指向你想要的關係。

例如:

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

該查詢將不得不如果:newRelationship類型可以改變取決於r

+0

謝謝。此查詢不會執行任務,因爲它將m設置爲endNode而不是StartNode。無論如何,我正在尋找一種可以將關係類型考慮在內的查詢。 – Hugo 2015-03-04 14:09:44

+0

是否可以根據現有關係的類型來設置新關係的類型,所有這些都在一個密碼請求中? – Hugo 2015-03-04 14:12:14

+0

否 - 再次,您不會通過密碼重新分配關係類型;您創建您需要的正確類型的關係,然後根據需要刪除舊的關係類型。我相信只有屬性和關係的價值可以改變。 – FrobberOfBits 2015-03-04 14:15:30

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;