2016-05-16 51 views
0

これはバグかもしれませんが、リレーションシップのコレクションを削除すると、開始ノードも削除されます。私はneo4jコミュニティ版2.3.3を実行しており、次のクエリを順番に実行しています。 Displaying 3 nodes, 2 relationships.Deleted 2 relationships, statement executed in 103 ms.Neo4j cypher:リレーションシップのコレクションを削除する

になりそして私が見つけていますが代わりにCが削除される関係の集まりである画像Displaying 3 nodes, 2 relationships.

match (u:User)-[]->(p:Pie)-[c:CONSISTS_OF*1]->() where id(u) = 6398 and id(p)= 6436 FOREACH(q in c | DELETE q)のグラフを返す

match (u:User)-[]->(p:Pie)-[c:CONSISTS_OF*1]->() where id(u) = 6398 and id(p)= 6436 return p,cは、ノードpもあります(no rows)

になり、削除...

私は単純にリレーションシップのコレクションを削除したいと思います。私はまた、この機能が理にかなっているものの、2013年後半から再訪されていないと感じています。https://github.com/neo4j/neo4j/issues/1612

EDIT:以前のバージョンの質問では、DELETEの代わりにDETACH DELETEがありました。これは質問の投稿の間違いでした。私はそれ以来それを改訂しました。このシナリオでは、DETACH DELETEとDELETEの両方が同じように動作するため、これがバグかもしれないと考えられる理由に注意してください。

+3

'(p:Pie)'が削除されたことをどう知っていますか?確認するために使用する 'MATCH'クエリでは、パターンの' - [c:CONSISTS_OF * 1] - > 'をまだ含めてください。それらの関係を削除したため、その部分は何も一致しません。しかし、全体のパターンはいずれにも一致しません。 'MATCH(p:Pie)WHERE id(p)= 6436'はあなたに何を与えますか? – jjaderberg

+0

うわー、まったくそれを見過ごした。あなたは絶対に正しいです。答えとしてあなたのことを公開したいのであれば、私はこの質問を閉じるでしょう。私はそれを見落として幾分恥ずかしいです。 –

答えて

1

(p:Pie)ノードがリレーションシップを削除した後に存在するかどうかを確認するために使用するクエリのMATCHには、まだパターンの一部の-[c:CONSISTS_OF*1]->が含まれています。それらの関係を削除したため、その部分は何も一致しません。しかし、ノードがまだ存在するかどうかにかかわらず、パターン全体はどちらとも一致しません。

MATCH (p:Pie) WHERE id(p) = 6436を使用して、(p:Pie)ノードがまだ存在するかどうかをテストできます。

関連する問題