neo4j--Cypher查询语法

1.Neo4j的Cypher语言是专门用于处理图形数据的。

使用模式来描述图形数据

熟悉SQL类的子句

说明性的,描述要找的东西,而不是如何找到它

2.

我们使用Cypher生成一个小的社交图。

CREATE(ee:Person {name:“Emil”,来自:“Sweden”,klout:99})

CREATE子句创建数据

()括号来表示节点

ee:为新节点添加一个变量“ee”并标注“Person”

{}括号来为节点添加属性

3.

现在找到代表Emil的节点:

MATCH(ee:Person)WHERE ee.name =“Emil”RETURN ee;

MATCH子句来指定节点和关系的模式

(ee:Person)具有标签“Person”的单个节点模式,其将匹配变量“ee”

WHERE子句来限制结果

ee.name =“Emil”将名称属性与值“Emil”进行比较

用于请求特定结果的RETURN子句

4.

CREATEclauses可以一次创建许多节点和关系。

MATCH (ee:Person) WHERE ee.name = "Emil"

CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }),

(ir:Person { name: "Ian", from: "England", title: "author" }),

(rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }),

(ally:Person { name: "Allison", from: "California", hobby: "surfing" }),

(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir),

(js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb),

(ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally),

(rvb)-[:KNOWS]->(ally)

5.

例如,一个模式可以用来找到埃米尔的朋友:

MATCH (ee:Person)-[:KNOWS]-(friends)

WHERE ee.name = "Emil" RETURN ee, friends

MATCH条款描述从已知节点到发现节点的模式

(ee)用Person启动模式(由WHERE限定)

- [:KNOWS] - 匹配“KNOWS”关系(在任一方向)

(朋友)将被绑定到埃米尔的朋友

6.

模式匹配可以用来提出建议。 约翰正在学习冲浪,所以他可能想找一个已经做的新朋友:

MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)

WHERE js.name = "Johan" AND surfer.hobby = "surfing"

RETURN DISTINCT surfer

()空括号忽略这些节点

DISTINCT,因为多于一个路径将匹配模式

冲浪者将包含阿利森,一个朋友的朋友谁冲浪

7.通过预先提交EXPLAIN或PROFILE来了解您的查询是如何工作的:

PROFILE MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)

WHERE js.name = "Johan" AND surfer.hobby = "surfing"

RETURN DISTINCT surfer

8.在您键入时,查询编辑器会通知您有关不推荐使用的功能和潜在的昂贵查询。


neo4j--Cypher查询语法_第1张图片

你可能感兴趣的:(neo4j--Cypher查询语法)