1. 程式人生 > >Neo4j學習(二):Cypher基本概念與表示

Neo4j學習(二):Cypher基本概念與表示

前言

從一堆眼花繚亂的事物中,清晰得把閃光的抓住。這就是思想的力量 接下來了解一些關於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。