2013-01-24 87 views
3

我想刪除一個節點的所有關係(傳入和outcoming)(的關係,可以去很多型動物節點)Neo4 /暗號:刪除一個節點

類似的所有關係:

啓動n = node:(1000)MATCH n < - [r] - > anynode DELETE r

不起作用,因爲這裏的「anynode」被解釋爲匹配的「第一個」鏈接節點。

任何想法?

回答

13

你想:

start n=node(1000) 
match n-[r]-() 
delete r; 
+0

因此,這是正確的答案? – Stewart

+2

在我的愚見中,它是。 :P –

0

我試圖刪除所有關係作爲一個更大的更新操作的一部分(在使用的解決方案通過@前夕弗里曼即刪除現有的關係,然後創建新的,如遇到問題以及更新節點屬性):

MATCH (n:Node { uuid: '1' }) 
OPTIONAL MATCH (n)-[r]-() 
DELETE r 
WITH n 
MATCH (f:Foo { uuid: '2' }) 
CREATE (n)-[:LIKES]->(f) 
WITH n 
MATCH (b:Bar { uuid: '3' }) 
CREATE (n)<-[:LOVES]-(b) 
SET n.name = 'Howard' 
RETURN n 

出於某種原因,它創造了一個重​​復條目(我很想找出爲什麼出現這種情況):

"n" 
{"name":"Howard","uuid":"1"} 
{"name":"Howard","uuid":"1"} 
Set 2 properties, deleted 2 relationships, created 4 relationships, started streaming 2 records after 6 ms and completed after 6 ms. 

使用以下(COLLECT然後FOREACH)似乎工作:

MATCH (n:Node { uuid: '1' }) 
OPTIONAL MATCH (n)-[r]-() 
WITH n, COLLECT (r) AS rels 
FOREACH (r IN rels | DELETE r) 
WITH n 
MATCH (f:Foo { uuid: '2' }) 
CREATE (n)-[:LIKES]->(f) 
WITH n 
MATCH (b:Bar { uuid: '3' }) 
CREATE (n)<-[:LOVES]-(b) 
SET prd.name = 'Howard' 
RETURN n 

返回:

"n" 
{"name":"Howard","uuid":"1"} 
Set 1 property, deleted 2 relationships, created 2 relationships, started streaming 1 record after 3 ms and completed after 3 ms.