Dive into AuraDB

March 12, 2022

Aura


Neo4j AuraDBは、Neo4jのクラウドサービスです。 zero-admin でWebブラウザで簡単にグラフデータベースを作ることができます。

準備


以下の材料を用意します。

なお、今回の作業はmacOS/Intelで行っています。

  1. PC
    • ターミナル (Terminal)
    • Webブラウザー
  2. インターネット回線
    • 設定するだけなので繋がればOK
  3. アカウント作成に必要なもの
    • 下記のうち1つ
      • Googleのアカウント
      • メールアドレス

アカウントの作成


まずは、サイトにアクセスしましょう。

  1. https://neo4j.com/cloud/aura/ にアクセス
  2. Start Free をクリック

Auradb web site

ここで、アカウントを作成します。

  1. Register のタブをクリック
  2. Googleアカウントメールアドレス・パスワードのどちらかを選択
  3. 画面下の背景が青いREGISTER > をクリック

Register

メールアドレスの場合は、電子メール認証のメッセージが表示されます。

Email Veri Message

電子メール認証

  1. メールボックスを確認
  2. Verify my e-mail address をクリック

Email Veri

データベースの作成


Database typeの選択

AuraDB Freeを選択します。

Select AuraDB Free

DBの作成 (Database details)

  1. Database Nameは、好きな名前を入力。例ではMovie
  2. GCP Regionを選択。例では`Singapore~
  3. Starting dataset。movie dataset
  4. Create Databaseをクリック

パスワードのコピー

  1. パスワードをコピー
  2. コピーが終わったらチェックを入れて、Continue

ここに表示されているものは、以前に作成したDBのものですので使えません。

Generated Password

Neo4j Browserを使う

  1. Open withのドロップダウンからNeo3j Browserを選択

Select Neo4j Browser

Neo4j Browser

Neo4j Browser

Cypher


Movieのデータを作成しました。 データを検索してみましょう

Matrixを検索

MovieのタイトルがMatrixを含んでいるものは?

MATCH (n:Movie)
  WHERE n.title CONTAINS 'Matrix'
RETURN n

1999年にリリースされた映画は?

MATCH (n:Movie)
  WHERE n.released = 1999
RETURN n

1999年の映画に出てきた俳優は?

MATCH (n:Movie)-[:ACTED_IN]-(m:Person)
  WHERE n.released = 1999
RETURN n,m

最短経路

トムハンクスとキアヌリーブスの最短経路

MATCH p=shortestPath(
  (:Person {name:"Tom Hanks"})-[*]-(:Person {name:"Keanu Reeves"}))
RETURN p

トムハンクスとキアヌリーブスの全ての最短経路

MATCH p=allShortestPaths(
  (:Person {name:"Tom Hanks"})-[*]-(:Person {name:"Keanu Reeves"}))
RETURN p

パターンマッチ

映画に出演してない人

MATCH (p:Person)
  WHERE NOT (p)--(:Movie)
RETURN p

出演と監督の両方をしている人

MATCH (p:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(p)
RETURN p

出演と監督の両方をしている人と映画

MATCH (p:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(p)
RETURN p,m

2作品以上で共演もしくは出会った人

MATCH (p:Person)-->(m1:Movie)<--(p2:Person),
      (p)-->(m2:Movie)<--(p2)
RETURN *
LIMIT 25

2作品以上で共演もしくは出会った人をリストで出力

MATCH (p:Person)-->(m1:Movie)<--(p2:Person),
      (p)-->(m2:Movie)<--(p2)
RETURN p.name, collect(distinct(p2.name))
LIMIT 25

俳優になろう (Step by step)

自分を登録

CREATE (:Person {name: 'myname'})

自分に、Meと言うラベルを追加

MATCH (:Person {name: 'myname'})
SET n:Me
RETURN n

登録を確認

MATCH (n:Person {name: 'myname'})
RETURN n

生まれた年と県を登録

MATCH (n:Person {name: 'myname'})
  SET n.born = 1970
  SET n.pref = '福岡'
RETURN n

マトリックスを検索

MATCH (n:Movie)
  WHERE n.title CONTAINS 'Matrix'
RETURN n;

マトリックス3部作に出演

MATCH (n:Movie),(p:Person {name: 'myname'})
  WHERE n.title CONTAINS 'Matrix'
CREATE (n)<-[:ACTED_IN]-(p)
RETURN *

Profile picture

Written by Koji Annoura who lives and works in Fukuoka Japan. You should follow them on Twitter