LoginSignup
3
3

More than 5 years have passed since last update.

Neo4jの勉強メモ2

Last updated at Posted at 2014-12-04

CREATE

  • Movieラベル付きのTheMatrixノードを作る。
  • CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
    
  • rolesというキーに紐付く['Neo']というバリューを持つACTED_INというリレーションをもつkeanuノードを作る。そのkeanuノードはTheMatrixノードと紐付く。

  • CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix)
    

Find

  • select句
  • MATCH (nineties:Movie) RETURN *
    
  • where句

  • MATCH (tom {name: "Tom Hanks"}) RETURN tom
    
  • 複数where句

  • MATCH (nineties:Movie) WHERE nineties.released > 1990 AND nineties.released < 2000 RETURN nineties.title
    
  • リレーションwhere句 その①

  • MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies
    
  • リレーションwhere句①(左から右)

  • MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies
    
  • リレーションwhere句①(右から左)

  • MATCH (cloudAtlas {title: "Cloud Atlas"})<-[:DIRECTED]-(directors) RETURN directors.name
    
  • リレーションwhere句③(①と②の合わせ技)

  • MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN coActors.name
    
  • リレーション自体を不定にすることもできる

  • MATCH (people:Person)-[relatedTo]-(:Movie {title: "Cloud Atlas"}) RETURN people.name, Type(relatedTo), relatedTo
    
  • limit句

  • MATCH (people:Person) RETURN people.name LIMIT 10
    

Solve (GraphDBならではのselect文)

  • Kevin Baconから4関係分(=4hopsという)以内にhollywoodリレーションで関係のあるデータの取得
  • MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..4]-(hollywood) RETURN DISTINCT hollywood
    
  • Kevin BaconからMeg Ryanまでで最短のパスを獲得する

  • MATCH p=shortestPath(
    (bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
    )
    RETURN p
    

Clean up

  • Delete all Movie and Person nodes, and their relationships
  • MATCH (a:Person),(m:Movie) OPTIONAL MATCH (a)-[r1]-(), (m)-[r2]-() DELETE a,r1,m,r2
    
  • レコードの確認

  • MATCH (n) RETURN n
    
  • limit句

  • MATCH (people:Person) RETURN people.name LIMIT 10
    

その他

  • 困ったら
 :help [コマンド名称] 
 例) :help MATCH

参考URL

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3