Cypher系列资料包括:
Neo4j-Cypher查询语言-语法
Neo4j-Cypher查询语言-语法-Create
Neo4j-Cypher查询语言-语法-Delete
Neo4j-Cypher查询语言-语法-Remove
Neo4j-在JAVA中执行Cypher查询
这些基本上和Neo4j简体中文手册-Cypher查询语言的内容对应上,这份文档组织结构不是很合理。后续我会根据我对Neo4j的后续学习和使用,把Cypher的资料按我的理解再做整理,希望会有个比较好理解的文档。
现阶段,请参看这些资料,足以大家初步学习和了解Cypher的知识。
整个系列资料参看:
http://blog.csdn.net/shenshouer/article/details/7273617
此查询语言包括几部分:
- START:通过索引查找或者元素的ID值获取的图中的起始节点
- MATCH:图的匹配模式,匹配START的开始节点
- WHERE:过滤条件
- RETURN:返回所需的结果
- CREATE:创建节点或者关系
- DELETE:删除节点、关系或者属性
- SET:设置属性的值
- FOREACH:对list中的元素一次一个的执行操作( Performs updating actions once per element in a list)
- WITH:切分一个query成多个不同的部分
假设我们有如下的图数据库信息
例:有这么一个查询:通过索引找到一个名叫'John'的用户,并遍历图找到他的朋友的朋友,返回John和这些朋友的信息
1
2
3
|
START john= node :node_auto_index(name = 'John' )
MATCH john-[:friend]->()-[:friend]->fof
RETURN john, fof
|
返回的结果为:
接下来,我们增加过滤的功能
接下来,我们增加过滤的功能
下面的例子:通过节点的ID得到一个用户的列表,并遍历图找到这些用户的朋友,返回朋友姓名是由S起始的用户和朋友信息
1
2
3
4
|
START user= node (5,4,1,2,3)
MATCH user-[:friend]->follower
WHERE follower.name =~ 'S.*'
RETURN user, follower.name
|
返回的结果为: