本文へスキップ
BecomeCoder

Neo4jコース · 第3章 Cypher入門 · レッスン16

Cypherのまとめ ― 小さなソーシャルグラフを作って読む

ブラウザで完結

導入

この章の総仕上げとして、CREATE で小さなソーシャルグラフ(人と人のつながり)を作り、MATCH でそれを読み出す一連の流れを体験しましょう。

説明

まず、3人の人物と、それぞれの「知り合い」関係を作成します。

CREATE
  (alice:Person {name: 'Alice', born: 1990}),
  (bob:Person {name: 'Bob', born: 1988}),
  (carol:Person {name: 'Carol', born: 1992}),
  (alice)-[:KNOWS]->(bob),
  (bob)-[:KNOWS]->(carol),
  (alice)-[:KNOWS]->(carol)

この1つの CREATE 文の中では、先に定義した変数alicebobcarol)を、同じ文の後半でリレーションシップの作成にそのまま再利用できます。実行すると、次のようなグラフができあがります。

graph LR
    Alice((Alice)) -- KNOWS --> Bob((Bob))
    Bob((Bob)) -- KNOWS --> Carol((Carol))
    Alice((Alice)) -- KNOWS --> Carol((Carol))

作ったグラフを確認するには、MATCH で読み出します。

MATCH (a:Person)-[:KNOWS]->(b:Person)
RETURN a.name AS from, b.name AS to

これを実行すると、Alice → BobBob → CarolAlice → Carol の3行が結果として返ってくるはずです。

この章では、CREATE でノードとリレーションシップを作り、MATCHRETURN でパターンに一致するデータを読み出す、というCypherの基本サイクルを一通り体験しました。次章では、この MATCH にもっと細かい条件をつけて、目的のデータだけを絞り込む方法を学びます。

実際に動かしてみよう

下のエディタに Cypher を書いて「実行」を押すと、ブラウザ内の学習用グラフDBで結果が表示されます(本物のNeo4jではなく、教材の範囲を再現した軽量な自作エンジンです)。最初から「映画と俳優+小さなソーシャルグラフ」が入っているので、MATCH 系の例はそのまま結果が返ります。CREATE / MERGE / SET などで書き換えた状態は積み重なり、「グラフを初期状態に戻す」でいつでもサンプルに戻せます。

Cypher — ブラウザ内で実行(学習用グラフDB)

Cypherクエリを書いて実行できる学習用グラフDBを読み込みます(本物のNeo4jではなく、教材の範囲を再現した軽量な自作エンジンです。映画と俳優の小さなサンプルグラフが最初から入っています)。
スクロールして表示された時点でも自動で読み込まれます。