Neo4j-Cypher查询语言

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
返回的结果为:

 

猜你喜欢

转载自hugh-wangp.iteye.com/blog/1848841
今日推荐