導入
この章の総仕上げとして、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 文の中では、先に定義した変数(alice、bob、carol)を、同じ文の後半でリレーションシップの作成にそのまま再利用できます。実行すると、次のようなグラフができあがります。
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 → Bob・Bob → Carol・Alice → Carol の3行が結果として返ってくるはずです。
この章では、CREATE でノードとリレーションシップを作り、MATCH と RETURN でパターンに一致するデータを読み出す、というCypherの基本サイクルを一通り体験しました。次章では、この MATCH にもっと細かい条件をつけて、目的のデータだけを絞り込む方法を学びます。