Neo4j學習(二):Cypher基本概念與表示
阿新 • • 發佈:2018-12-16
前言
從一堆眼花繚亂的事物中,清晰得把閃光的抓住。這就是思想的力量 接下來了解一些關於Cypher的概念
Cypher
1、概念:,Cypher是文字描述性查詢語言,就好像SQL一樣。Cypher語言比較接近人的認知。告訴Neo4j如何和處理匹配項,但不會告訴其怎麼找到節點。一個例項程式碼如下:
(:Person) -[:LIVES_IN]-> (:City) -[:PART_OF]-> (:Country)
這段程式碼是不是符合人的認知。。。
2、節點語法(Node syntax)
() (matrix) (:Movie) (matrix:Movie) (matrix:Movie {title: "The Matrix"}) (matrix:Movie {title: "The Matrix", released: 1997})
直接看最後一行.matrix指節點名稱,Movie指節點型別,後面字典裡面存的是節點屬性。
3、關係語法( Relationship syntax)
-->
-[role]->
-[:ACTED_IN]->
-[role:ACTED_IN]->
-[role:ACTED_IN {roles: ["Neo"]}]->
關係用[]表示,role為變數名,ACTED_IN為類名,字典內為屬性。
4、模式語法(Pattern syntax)
(keanu:Person:Actor {name: "Keanu Reeves"} ) -[role:ACTED_IN {roles: ["Neo"] } ]-> (matrix:Movie {title: "The Matrix"} )
模式即由節點和關係組成 注意:Pattern Nodes vs. Database Nodes When a node is used in a pattern, it describes zero or more nodes in the database. Similarly, each pattern describes zero or more paths of nodes and relationships.(暫時不理解這個)
5、pattern 可以被宣告為變數:
acted_in = (:Person)-[:ACTED_IN]->(:Movie)
6、子句(Clauses)
Cypher語言中通常有很多型別的字句,用來處理特定的任務。
總結
在這一節,我們瞭解了neo4j的查詢語言Cypher,並瞭解了額Cypher如何表示圖中的nodes, relation, pattern。