Neo4jでノードを作成するのと同じように、CREATE
を使用できます。 それらのノード間の関係を作成するステートメント。
関係を作成するためのステートメントは、CREATE
で構成されます 、作成している関係の詳細が続きます。
例
以前に作成したいくつかのノード間に関係を作成しましょう。まず、アーティストとアルバムの関係を作りましょう。
次の関係を作成します。
これがCypherCREATE
です 上記の関係を作成するステートメント:
MATCH (a:Artist),(b:Album) WHERE a.Name = "Strapping Young Lad" AND b.Name = "Heavy as a Really Heavy Thing" CREATE (a)-[r:RELEASED]->(b) RETURN r
上記のコードの説明
まず、MATCH
を使用します 関係を作成する2つのノードを見つけるためのステートメント。
Artistのノードが多数存在する可能性があります またはアルバム ラベルを付けるので、関心のあるノードだけに絞り込みます。この場合、プロパティ値を使用してフィルタリングします。 名前を使用します 以前に各ノードに割り当てたプロパティ。
次に、実際のCREATE
があります 声明。これが関係を作成するものです。この場合、変数名(つまり、a
)で2つのノードを参照します。 およびb
)最初の行でそれらを与えたこと。関係はASCIIコードパターンを使用して確立され、矢印は関係の方向を示します:(a)-[r:RELEASED]->(b)
。
リレーションシップにr
という変数名を付けます 関係にRELEASED
のタイプを指定します (「このバンドリリース」のように このアルバム」)。関係のタイプは、ノードのラベルに類似しています。
関係の追加
上記の例は、関係の非常に単純な例です。 Neo4jが本当に得意なことの1つは、相互に関連する多くの関係を処理することです。
確立したばかりの関係に基づいて構築して、ノードとノード間の関係をさらに作成し続けることがいかに簡単であるかを確認しましょう。したがって、ノードをもう1つ作成し、さらに2つの関係を追加します。
最終的に次のグラフになります:
このグラフは、デヴィンタウンゼンドがバンドで演奏し、バンドがリリースしたアルバムで演奏し、彼もアルバムをプロデュースしたことを示しています。
それでは、DevinTownsendのノードを作成することから始めましょう:
CREATE (p:Person { Name: "Devin Townsend" })
次に、関係を作成してグラフを返します。
MATCH (a:Artist),(b:Album),(p:Person) WHERE a.Name = "Strapping Young Lad" AND b.Name = "Heavy as a Really Heavy Thing" AND p.Name = "Devin Townsend" CREATE (p)-[pr:PRODUCED]->(b), (p)-[pf:PERFORMED_ON]->(b), (p)-[pl:PLAYS_IN]->(a) RETURN a,b,p
前のスクリーンショットのようにグラフが表示されます。