この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
neo4j:よく使うコマンド [2020/07/19 17:01] ips |
neo4j:よく使うコマンド [2020/07/21 07:48] (現在) ips |
||
|---|---|---|---|
| ライン 1: | ライン 1: | ||
| ====== よく使うコマンド ====== | ====== よく使うコマンド ====== | ||
| + | |||
| + | [[https://gist.github.com/ykst/60ecf2b21fc1ed937ec01af163fdf6a0|逆引きCypher]] | ||
| + | [[https://neo4j.com/docs/cypher-manual/current/administration/databases/index.html|neo4j]] | ||
| + | |||
| + | ノードと呼ばれるオブジェクトを複数作成できる。 | ||
| + | ノードは同一ラベル、同一プロパティでも複数作成される。(idが異なる) | ||
| + | (ノード:ラベル{プロパティ1:xxx,プロパティ2:yyy}) | ||
| + | |||
| + | ノード間は方向性のあるリレーションで結ぶことができる。 | ||
| + | (ノード)-[:ラベル{プロパティ1:xxx,プロパティ2:yyy}]->(ノード) | ||
| + | |||
| + | リレーションを作成する場合は、同一プロパティのノードが複数作成可能なため、 | ||
| + | matchで検索した結果の変数を使って作成する。 | ||
| + | もしくは、createでノードの作成と同時にリレーションも作成する。 | ||
| <code> | <code> | ||
| + | #追加 | ||
| + | create(a:Person{name:"taro",age:44}) | ||
| + | create(b:Person{name:"hana",age:44}) | ||
| + | create(c:Person{name:"sabu",age:44}) | ||
| + | |||
| + | #検索 | ||
| + | match(n:Person)where n.name="taro" return n | ||
| + | |||
| + | #更新 | ||
| + | match(n:Person)where n.name="taro" set n.age=45 | ||
| + | |||
| + | #追加 | ||
| + | create(a:Person{name:"hana",age:10}) | ||
| + | create(a:Person{name:"sabu",age:30}) | ||
| + | |||
| + | #リレーション追加 taroからtaro以外のノードへlikeのリレーションを作成 | ||
| + | match(a:Person)where a.name="taro" | ||
| + | match(b:Person)where b.name<>"taro" | ||
| + | create (a)-[:like]->(b) | ||
| + | |||
| + | #リレーションの削除 | ||
| + | MATCH ()-[e:like]-() delete e | ||
| + | |||
| + | #リレーションを内部ID指定で削除 | ||
| + | match()-[a]->() where ID(a)=21 delete a | ||
| + | |||
| + | #ノードの削除 | ||
| + | match(a) where a.name="taro" delete a | ||
| + | |||
| + | #ノードを内部ID指定で削除 | ||
| + | match(a) where ID(a)=21 delete a | ||
| + | |||
| + | #全リレーションの削除 | ||
| + | MATCH ()-[e]-() delete e | ||
| + | |||
| + | #全ノードとリレーションの削除 | ||
| + | MATCH (n) DETACH DELETE n | ||
| + | </code> | ||
| + | |||
| + | |||
| + | <code> | ||
| + | #データベース作成 ※エンタープライズエディションのみ | ||
| + | CREATE DATABASE [名前] | ||
| + | |||
| #全てを削除 | #全てを削除 | ||
| MATCH (n) | MATCH (n) | ||
| DETACH DELETE n | DETACH DELETE n | ||
| + | #ノードを作成する | ||
| + | #CREATE データを作成する句 | ||
| + | #() ノードを示す括弧 | ||
| + | #ee:Person 新しいノードの変数「ee」とラベル「Person」 | ||
| CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 }) | CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 }) | ||
| + | |||
| + | #検索 | ||
| + | match (nn:Person)where nn.name="taro" | ||
| + | match(mm:Person)where mm.name="hana" | ||
| + | return nn,mm | ||
| + | |||
| + | #リレーションの作成 | ||
| + | match (nn:Person)where nn.name="ryu" | ||
| + | match(mm:Person)where mm.name="hana" | ||
| + | create(nn)-[:FRIEND]->(mm) | ||
| + | |||
| + | |||
| + | #ノードとリレーションを作成する | ||
| + | create(taro)-[:FRIEND]->(hana) | ||
| + | |||
| + | #全ノードを表示する | ||
| + | MATCH (n) RETURN n LIMIT 25 | ||
| + | |||
| + | #全リレーションを表示する | ||
| + | MATCH p=()-[r:KNOWS]->() RETURN p LIMIT 25 | ||
| #Emilを表すノードを検索 | #Emilを表すノードを検索 | ||
| + | #MATCH ノードと関係のパターンを指定する句 | ||
| + | #(ee:Person) 変数「ee」に一致を割り当てるラベル「Person」の単一ノードパターン | ||
| + | #WHERE 結果を制約する句 | ||
| + | #ee.name = "Emil" 名前プロパティを値「Emil」と比較します | ||
| + | #RETURN 特定の結果を要求するために使用される句 | ||
| MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee; | MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee; | ||
| ライン 22: | ライン 109: | ||
| (rvb)-[:KNOWS]->(ally) | (rvb)-[:KNOWS]->(ally) | ||
| + | #Emailのパターンマッチ | ||
| MATCH (ee:Person)-[:KNOWS]-(friends) | MATCH (ee:Person)-[:KNOWS]-(friends) | ||
| WHERE ee.name = "Emil" RETURN ee, friends | WHERE ee.name = "Emil" RETURN ee, friends | ||
| + | # | ||
| MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer) | MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer) | ||
| WHERE js.name = "Johan" AND surfer.hobby = "surfing" | WHERE js.name = "Johan" AND surfer.hobby = "surfing" | ||
| ライン 33: | ライン 121: | ||
| WHERE js.name = "Johan" AND surfer.hobby = "surfing" | WHERE js.name = "Johan" AND surfer.hobby = "surfing" | ||
| RETURN DISTINCT surfer | RETURN DISTINCT surfer | ||
| - | |||
| - | |||
| - | |||
| </code> | </code> | ||