m's blog

備忘録とかメモとか

【Neo4j】Dockerで試すNeo4j【第2回/データ追加編】

【Neo4j】Dockerで試すNeo4j【第2回/データ追加編】

前回は、Dockerを使ったNeo4jのセットアップとユーザの作成について解説してみました。

今回は、「Dockerで試すNeo4j」シリーズで使用するデータを追加し、MATCHクエリを使って追加したデータを簡単に確認してみたいと思います。

↓ 前回の記事はこちら

目次

はじめに

まずは、前回の内容に従って、Neo4jコンテナを起動し、http://localhost:57474/にアクセスしてログインしてください。

念のため、DBの切替リクエストをしておきます。

クエリ入力欄に、以下のように入力して、クエリを実行してください。

:use neo4j

クエリ入力欄にneo4j$のような表示がされていれば、切替完了です。

データを追加する!

それでは、早速、「Dockerで試すNeo4j」シリーズで使用するデータを追加していきます。

クエリ入力欄に、以下のクエリをコピペして実行してください。

CREATE (Taro:Person {id:'Taro', name:'Taro'})
CREATE (Yuji:Person {id:'Yuji', name:'Yuji'})
CREATE (Ichiro:Person {id:'Ichiro', name:'Ichiro'})
CREATE (Ziro:Person {id:'Ziro', name:'Ziro'})
CREATE (Saburo:Person {id:'Saburo', name:'Saburo'})
CREATE (Hanako:Person {id:'Hanako', name:'Hanako'})
CREATE (Takako:Person {id:'Takako', name:'Takako'})
CREATE (Tetsuko:Person {id:'Tetsuko', name:'Tetsuko'})
CREATE (Sizue:Person {id:'Sizue', name:'Sizue'})
CREATE (Tokie:Person {id:'Tokie', name:'Tokie'})
CREATE (Tomoko:Person {id:'Tomoko', name:'Tomoko'})

CREATE
  (Taro)- [:FOLLOW] - >(Saburo),
  (Taro)- [:FOLLOW] - >(Takako),
  (Yuji)- [:FOLLOW] - >(Sizue),
  (Ichiro)- [:FOLLOW] - >(Saburo),
  (Ziro)- [:FOLLOW] - >(Tetsuko),
  (Saburo)- [:FOLLOW] - >(Taro),
  (Saburo)- [:FOLLOW] - >(Hanako),
  (Hanako)- [:FOLLOW] - >(Tetsuko),
  (Takako)- [:FOLLOW] - >(Hanako),
  (Tetsuko)- [:FOLLOW] - >(Taro),
  (Tetsuko)- [:FOLLOW] - >(Sizue),
  (Tetsuko)- [:FOLLOW] - >(Tokie),
  (Tetsuko)- [:FOLLOW] - >(Yuji),
  (Sizue)- [:FOLLOW] - >(Taro),
  (Tokie)- [:FOLLOW] - >(Yuji),
  (Tokie)- [:FOLLOW] - >(Taro),
  (Tokie)- [:FOLLOW] - >(Takako)

idnameプロパティをもったPersonノードと、Person同士のリレーションFOLLOWを追加しています。

追加したデータを確認!

「Person」ノードをチェック

まずは、追加したPersonノードを確認してみます。

以下のクエリを入力して実行してみてください。

MATCH (n:Person) RETURN n

実行結果は以下の通りです。

【Neo4j】Dockerで試すNeo4j【第2回/データ追加編】

「Tomoko」さんに関するFOLLOWリレーションは追加していないため、リンクされていません。

FOLLOWリレーションのチェック

次に、FOLLOWリレーションを確認してみます。

以下のクエリを実行してみてください。

MATCH p=()-[:FOLLOW]->() RETURN p

結果は以下の通り。

【Neo4j】Dockerで試すNeo4j【第2回/データ追加編】

以下の画像は、見やすさにために、各ノードの位置を少し調整したものです。

【Neo4j】Dockerで試すNeo4j【第2回/データ追加編】

Personノードをチェックしたときとは異なり、FOLLOWリレーションがない「Tomoko」さんは表示されていません。

サンプルコード

以下のリポジトリに「Dockerで試すNeo4j」シリーズ全話分のコードを設置しています。

うまく動かない場合は、上記のリポジトリをクローンして試してみてください。

まとめ

今回は、「Dockerで試すNeo4j」シリーズで使用するデータを追加し、追加したデータを簡単に確認してみました。

他のDBだと面倒そうな、複雑なリレーションの表現が、Neo4jなら簡単にできてしまいます。

次回は、データ検索の要となるMATCHクエリのより詳細な使い方を紹介したいと思います。

↓ 「Dockerで試すNeo4j」シリーズ記事一覧はこちら