连接到数据库
from py2neo import Graph
graph = Graph()
以上代码连接到neo4j默认URI,更改URI如下所示:
remote_graph = Graph("http://remotehost.com:6789/db/data/")
利用cypher语言对数据库进行查询
cypher是一个描述性的数据库查询语言,图形数据库neo4j中集成了cypher语言,它的常用语句如下:
创建
- 创建结点:CREATE(m:标签{属性名:属性值})
,例如
create(m{type:"Function"})
即为创建一个无标签,属性type值为Function的结点m。
- 创建关系(边):
CREATE(m)-[r:标签{属性名:属性值}]->(n)
,其中m,n为结点,可以是已存在结点,也可以由这条语句创建。创建的关系必须有方向,例如
create(m)-[r:FLOWS_TO{flowLabel:"True"}]->(n)
即为创建一个由结点m指向结点n,有标签FLOWS_TO,属性flowLabel值为True的关系(边)。
注意,无论创建结点还是创建关系,标签和属性均为可选项,并且cypher命令不区分大小写。
查找
- 查找结点:MATCH(m:标签{属性名:属性值})
,查找需配合RETURN语句,例如
match(m{type:"Function"})
return m
即为查找图中所有类别为函数的结点并返回。
- 查找关系(边):
MATCH(m:标签{属性名:属性值})-[r:标签{属性名:属性值}]-(n)
,即为查找与所有符合条件的结点m连接的所有符合条件的关系r,句子中n亦可添加条件,若关系为有向,则可将短线“–”改为箭头“–>”,例如
match(m{type:"Function"})-[r:IS_AST_PARENT]->()
return r
即为查找图中所有从类别为函数的结点m出发,并且有标签“IS_AST_PARENT”的关系(边)。