6

私は2.0 M6 neo4jサーバー(win7 64のoracle jdk7)で遊んでいます。

REST API で単一の暗号クエリを使用して、ノードとその関係を削除しようとしています。

私が作成したクエリ (ブラウザー UI で実行すると機能します) は次のようになります。

START n = node( 1916 ) MATCH n-[r]-() DELETE n, r

gson を通すと、次のようになります。

{"query":"START n \u003d node( 1916 ) MATCH n-[r]-() DELETE n, r"}

サーバーに送信されると、次の応答が返されます。

{
  "columns" : [ ],
  "data" : [ ]
}

ノードがまだその ID によって neo4j サーバーで検出できるため、私のテストは失敗します...

クエリを単純化してノード (関係がない) を削除すると、次のようになります。

START n = node( 1920 )  DELETE n

になる

{"query":"START n \u003d node( 1920 )  DELETE n"}

その後、ノードが削除されます。

私は何かを逃しましたか?

ありがとう、アンディ

4

6 に答える 6

15

neo4j 2.0の場合、あなたはそうするでしょう

START n=node(1916)
OPTIONAL MATCH n-[r]-()
DELETE r, n;
于 2013-12-14T06:22:10.113 に答える
11

MATCH n-[r]-()ノードに少なくとも 1 つの関係が関連付けられている場合にのみ、ノードと一致します。

関係の一致をオプションにしたい場合:MATCH n-[r?]-()

また、ノードの前の関係を削除する必要があります。

したがって、完全なクエリは次のとおりです。

START n=node(1916)
MATCH n-[r?]-()
DELETE r, n
于 2013-10-28T18:40:49.477 に答える
8

STARTと構文の両方[r?]が段階的に廃止されています。通常、内部 ID を直接使用することはお勧めしません。次のようなものを試してください:

match (n{some_field:"some_val"}) optional match (n)-[r]-() delete n,r

( http://docs.neo4j.org/refcard/2.1/を参照)

于 2014-03-04T05:31:22.797 に答える
4

疑問符 (?) は Neo4J 2.0.3 ではサポートされていないため、答えは次のようになります。OPTIONAL MATCH

START n=node(nodeid) OPTIONAL MATCH n-[r]-() DELETE r, n;

于 2014-07-30T11:57:33.440 に答える
0

最新のドキュメントに基づいており、私もテストしました

START n=node(1578)
MATCH (n)-[r]-()
DELETE n,r

n の周りに () を付ける必要があり、? も必要ありません。[r?] で。

なくても動作しOPTIONALます。

于 2016-05-24T12:27:43.407 に答える