🤖

Neo4Jの矢印について

2022/12/08に公開

[]->これはなんだ?

NoSQLのグラフデータベースのNeo4Jを使うようになって最近キャッチアップしています。
Neo4Jの記事を書くのは2日目ですね。

最近はUdemyのこちらのコースで学習しながら、公式ドキュメントを見て勉強してます。
Microsoft Edgeの翻訳機能を使えば動画の字幕を日本語にできるので、英語分からなくても英語圏お人の会話が理解できます。FlutterやReactの学習でよく使ってました!

https://www.udemy.com/course/neo4j_cypher_by_example_masterclass/

今回は矢印の記号をつけるクエリについて学んでみました。

これは、どんな意味かというと、P=()の中にPersonってラベルがあって、そこに名前が田中太郎さんと山田花子さんがいて、-[:FOLLOWS]-> をつけると、田中太郎さんは山田花子さんをフォローしている人という関係を持ったNodeを作ることができます。

CREATE p=(:Person{name:'田中太郎'})-[:FOLLOWS]->(:Person{name:'山田花子'})

RETURN p

SQLの外部キーに似てますね。
こちらのサイトでわかりやすく解説されています。
https://www.sejuku.net/blog/54072

これは、練習用で何度か同じ名前のクエリを実行するので、またクエリを実行するときは、削除した方がいいみたいです。でないと、どんどんデータが溜まっていく!
こちらのクエリを実行すると、全てのデータを削除します。普通は使わないんでしょうね😅

match(n) detach delete n

複数のNodeを作成する

今度は、複数の人が関係を持っているグラフを作成してみます。
Aさん~Eさんまで人がいて、誰がフォローしているのかをグラフにしてみました。
グラフが表示されたときは、密集しているので、マウスでクリックして引っ張ってください!
動くから面白いですよね😅
RDBには、ない機能ですね。

CREATE (p:Person{name:'Aさん'})

CREATE (b:Person{name:'Bさん'})

CREATE (d:Person{name:'Cさん'})

CREATE (o:Person{name:'Dさん'})

CREATE (m:Person{name:'Eさん'})

CREATE p1=(d)<-[:FOLLOWS]-(p)-[:FOLLOWS]->(b)

CREATE p2=(o)<-[:FOLLOWS]-(d)-[:FOLLOWS]->(m)

RETURN p1, p2

やってみた感想

Neo4Jは独特の記号を使ってて、SQLと違って分かりにくいところはありますが、検索するだけなら、簡単に書けるような気がする。
毎日調べながらキャッチアップしております。
公式ドキュメントをみて勉強をしますが、Udemyにも分かりやすい講座があるので、そちらもおすすめです。
ご興味ある方は、グラフデータベース触ってみてください!

Discussion