この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
neo4j:よく使うコマンド [2020/07/20 08:13] 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]] | [[https://neo4j.com/docs/cypher-manual/current/administration/databases/index.html|neo4j]] | ||
| + | |||
| + | ノードと呼ばれるオブジェクトを複数作成できる。 | ||
| + | ノードは同一ラベル、同一プロパティでも複数作成される。(idが異なる) | ||
| + | (ノード:ラベル{プロパティ1:xxx,プロパティ2:yyy}) | ||
| + | |||
| + | ノード間は方向性のあるリレーションで結ぶことができる。 | ||
| + | (ノード)-[:ラベル{プロパティ1:xxx,プロパティ2:yyy}]->(ノード) | ||
| + | |||
| + | リレーションを作成する場合は、同一プロパティのノードが複数作成可能なため、 | ||
| + | matchで検索した結果の変数を使って作成する。 | ||
| + | もしくは、createでノードの作成と同時にリレーションも作成する。 | ||
| + | |||
| + | <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> | <code> | ||
| ライン 16: | ライン 69: | ||
| #ee:Person 新しいノードの変数「ee」とラベル「Person」 | #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) | ||
| #全ノードを表示する | #全ノードを表示する | ||
| ライン 54: | ライン 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> | ||