2016-04-18 16 views
0

Neo4jのBuendiaファミリーツリーで遊ぶためにthis GraphGistでコードを実行しようとしています。Neo4jのノード間で関係が正しく適用されていません

私は2つのノードを作成し、そのように、関係とそれらを接続しよう:

CREATE (JoseArcadioBuendia:Male {name:'Jose Arcadio Buendia',Gender:'Male'}) 

その後、

CREATE (UrsulaIguaran:Female {name:'Ursula Iguaran',Gender:'Female'}) 

その後、

CREATE (JoseArcadioBuendia)-[:HUSBAND]->(UrsulaIguaran) 

私はこれを取得:

enter image description here

なぜこのコードは間違っていますか?構文はうまく見え、それはGistの作者のために実行されるようです。間違って何かしていますか?

+0

私のためのクエリが動作します。私はちょうどペーストをコピーして実行しました。それは動作します.. – BDR

+0

はい、cybersamはそれをクリアしました - 識別子は、単一のクエリの生活の間だけ存在します。私は行ごとに記入をしていました。 –

+0

入手しました。私は疑問に思っていました – BDR

答えて

2

私はあなたが単一のクエリ内のすべての3つのCREATE条項が含まれていなかったと推定します。

サイファー識別子(JoseArcadioBuendiaおよびUrsulaIguaranなど)は、1つのクエリの存続期間中のみ存在します。 DBはこれらの識別子を保持しません。したがって、ちょうどCREATE (JoseArcadioBuendia)-[:HUSBAND]->(UrsulaIguaran)を含むクエリがある場合、neo4jはノードがすでに存在していることを知らないため、2つの新しいノードを作成します(関係も同様)。

3つの句をすべて1つのクエリに入れた場合、期待した結果が得られたはずです。そうでなければ、クエリは最初にMATCHを使用して、これらの識別子を適切なノードに関連付けなければなりません(@ Bondの回答に似ています)。

+0

ああ!そうですか!だから、あなたは、問題は最終的に私がWebインターフェイスを使用していて、ターミナルではなくなってくると言うことができると思います。 –

+1

実際には、neo4jブラウザで複数節のクエリを使用できます。 – cybersam

0

3行目が間違っています。ノードを指定していません。次のことを試してみてください。

MATCH (a:Male), (b:Female) 
WHERE a.name = 'Jose Arcadio Buendia' AND b.name = 'Ursula Iguaran' 
CREATE (a)-[:HUSBAND]->(b); 
+0

CREATE(行3、列11(オフセット:104))に単一のリレーションシップタイプを指定する必要があります。 –

+0

'HUSBAND'の関係タイプを作るために@ Bondの答えを編集しました。 "プレフィックス)、Ursalaの名前を修正するために使用します。 – cybersam

関連する問題