Aura
Neo4j AuraDBは、Neo4jのクラウドサービスです。 zero-admin でWebブラウザで簡単にグラフデータベースを作ることができます。
準備
以下の材料を用意します。
なお、今回の作業はmacOS/Intelで行っています。
- PC
- ターミナル (Terminal)
- Webブラウザー
- インターネット回線
- 設定するだけなので繋がればOK
- アカウント作成に必要なもの
- 下記のうち1つ
- Googleのアカウント
- メールアドレス
- 下記のうち1つ
アカウントの作成
まずは、サイトにアクセスしましょう。
- https://neo4j.com/cloud/aura/ にアクセス
Start Freeをクリック
ここで、アカウントを作成します。
RegisterのタブをクリックGoogleアカウントかメールアドレス・パスワードのどちらかを選択- 画面下の背景が青い
REGISTER >をクリック
メールアドレスの場合は、電子メール認証のメッセージが表示されます。
電子メール認証
- メールボックスを確認
Verify my e-mail addressをクリック
データベースの作成
Database typeの選択
AuraDB Freeを選択します。
DBの作成 (Database details)
- Database Nameは、好きな名前を入力。例では
Movie - GCP Regionを選択。例では`Singapore~
- Starting dataset。
movie dataset Create Databaseをクリック
パスワードのコピー
- パスワードをコピー
- コピーが終わったら
チェックを入れて、Continue
ここに表示されているものは、以前に作成したDBのものですので使えません。
Neo4j Browserを使う
Open withのドロップダウンからNeo3j Browserを選択
Neo4j Browser
Cypher
Movieのデータを作成しました。 データを検索してみましょう
Matrixを検索
MovieのタイトルがMatrixを含んでいるものは?
MATCH (n:Movie)
WHERE n.title CONTAINS 'Matrix'
RETURN n1999年にリリースされた映画は?
MATCH (n:Movie)
WHERE n.released = 1999
RETURN n1999年の映画に出てきた俳優は?
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,m2作品以上で共演もしくは出会った人
MATCH (p:Person)-->(m1:Movie)<--(p2:Person),
(p)-->(m2:Movie)<--(p2)
RETURN *
LIMIT 252作品以上で共演もしくは出会った人をリストで出力
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 *