赞
踩
首先打开neo4j 管理界面,点击图片中的箭头Write Code链接进入代码书写引导界面,然后点击Movie Graph下面的Create a graph链接进入。
进来后会有一堆英文的介绍,这个实例将指导你学习以下入门操作:
单击界面中右侧换页箭头会看到一些代码块,点击它,这些代码将自动输入到命令区,再点击运行按钮,就创建完成了。
【程序1-1】创建电影节点(官方程序中的第1行)
创建一个Movie节点,这个节点上带有三个属性 {title:‘The Martix’, released:1999, tagline:‘Welcome to the Real World’},分别表示这个电影的标题:The Matrix、发布时间:1999、宣传词:Welcome to the Real World。
CREATE (TheMatrix:Movie {title:'The Martix', released:1999, tagline:'Welcome to the Real World'})
【程序1-2】创建人物节点(官方程序第2行)
下面程序创建了一个Person节点,节点带有两个属性{name:‘Keanu Reeves’, born:1964}。
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
【程序1-3】创建演员、导演关系(官方程序9-16行)
(Keanu)-[:ACTED_IN {roles:[‘Neo’]}]->(TheMatrix)意思是创建一个演员参演电影关系,演员Keanu以角色roles:[‘Neo’]参演ACTED_IN到电影TheMatrix中。
(LillyW)-[:DIRECTED]->(TheMatrix)意思是创建导演与电影的关系,即LillyW导演了[:DIRECTED]电影TheMatrix。
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix)
执行完全部指令后,这个数据库中的电影、演员、导演、制片商的关系就创建出来了。完整的图如下:
【程序2-1】查找名为“Tom Hanks”的人物
MATCH (tom {name:'Tom Hanks'}) RETURN tom
可以看到这个节点被查找到了,点击节点的图标会看到节点的属性,下方。
【程序2-2】查找名为“Cloud Atlas”的电影
MATCH (cloudAtlas {title:"Cloud Atlas"}) RETURN cloudAtlas
【程序2-3】随机查找多个人物的人名
MATCH (people:Person) RETURN people.name LIMIT 10
在本次结果中,由于只返回name属性,所以就不用图形化的形式返回。
【程序2-4】查找1990年到2000年发行的电影的名称
MATCH (nineties:Movie)
WHERE nineties.released > 1990 AND nineties.released < 2000
RETURN nineties.title
【程序3-1】查找‘Tom Hanks’参演过的电影名称
MATCH (tom:Person{name:"Tom Hanks"}) -[:ACTED_IN] -> (tomHanksMovies) return tom,tomHanksMovies
【程序3-2】查找谁导演了电影“Cloud Atlas”
MATCH (cloudAtlas{title:'Cloud Atlas'}) <- [:DIRECTED] - (directors)
return directors.name
【程序3-3】查找与Tom Hanks同出演过电影的人
首先通过匹配节点类型为Person、属性为{name:‘Tom Hanks’}的节点,然后匹配此节点通过[:ACTED_IN]关系指向的节点m,并且同时匹配某个节点coActors也通过[:ACTED_IN]关系指向的节点m,然后返回m的name属性。
match (tom:Person {name:'Tom Hanks'}) - [:ACTED_IN] ->(m)<-[:ACTED_IN] - (coActors)
return coActors.name
【程序3-4】查找与电影“Cloud Atlas”相关的所有人
match (people:Person) - [relatedTo] - (:Movie{title:'Cloud Atlas'})
return people.name, Type(relatedTo), relatedTo
【程序3-5】查找与演员“Kevin Bacon”存在4条及以内关系的任何演员和电影
match (bacon:Person{name:'Kevin Bacon'}) - [*1..4] - (hollywood)
return distinct hollywood
【程序3-6】查找与演员Kevin Bacon与Meg Ryan之间的最短关系路径
首先匹配节点类型为Person、属性为{name:‘Kevin Bacon’}的节点,再匹配节点类型为Person、属性为{name:‘Meg Ryan’}的节点,两者用[*]关系操作符相连代表两者存在任意深度的关系,然后再使用shortestPath方法返回两者在所有深度关系遍历路径中最短的一条。
Match p = shortestPath((bacon:Person{name:'Kevin Bacon'}) - [*] - (meg:Person{name:'Meg Ryan'}))
return p
官方例子到这就结束了,以后有机会继续更新一些我正在学的py2neo操作neo4j的一些用法,希望对你们有所帮助,并指出我的不足之处,相互学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。