Neo4Jの矢印について
[]->これはなんだ?
NoSQLのグラフデータベースのNeo4Jを使うようになって最近キャッチアップしています。
Neo4Jの記事を書くのは2日目ですね。
最近はUdemyのこちらのコースで学習しながら、公式ドキュメントを見て勉強してます。
Microsoft Edgeの翻訳機能を使えば動画の字幕を日本語にできるので、英語分からなくても英語圏お人の会話が理解できます。FlutterやReactの学習でよく使ってました!
今回は矢印の記号をつけるクエリについて学んでみました。
これは、どんな意味かというと、P=()の中にPersonってラベルがあって、そこに名前が田中太郎さんと山田花子さんがいて、-[:FOLLOWS]-> をつけると、田中太郎さんは山田花子さんをフォローしている人という関係を持ったNodeを作ることができます。
CREATE p=(:Person{name:'田中太郎'})-[:FOLLOWS]->(:Person{name:'山田花子'})
RETURN p
SQLの外部キーに似てますね。
こちらのサイトでわかりやすく解説されています。
これは、練習用で何度か同じ名前のクエリを実行するので、またクエリを実行するときは、削除した方がいいみたいです。でないと、どんどんデータが溜まっていく!
こちらのクエリを実行すると、全てのデータを削除します。普通は使わないんでしょうね😅
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