赞
踩
Neo4j是一个世界领先的开源图形数据库。 它是由Neo技术使用Java语言完全开发的。
这里需要等待较长的时间
为了快速入门那neo4j,我们通过官方的
guide
来快速入门
以下内容将分为6部分
查询
name(名字)
为Tom Hanks
的节点
MATCH (a:Person {name:'Tom Hanks'}) RETURN a
创建一个
Person(人)
节点,name(名字)
为Brie Larson
,born(出生日期)
为1989
CREATE (a:Person {name:'Brie Larson', born:1989}) RETURN a
创建一个
Movie(电影)
节点,title(标题)
为Captain Marvel
,released(发布时间)
为2019
,tagline(标语)
为Everything begins with a (her)o.
CREATE (a:Movie {title:'Captain Marvel', released:2019,
tagline:'Everything begins with a (her)o.'}) RETURN a
作用
删除
name(名字)
为Brie Larson
的Person(人)
节点
MATCH (a:Person {name:'Brie Larson'}) DETACH DELETE a
MATCH (a:Movie {title:'Captain Marvel'}) DETACH DELETE a
创建或者更新节点
合并操作通常与匹配(match)和更新(update)一起使用,当使用
ON CREATE
的时候会新创建一个节点,使用ON MATCH
的时候会更新已有的的节点
MERGE (a:Person {name:'Brie Larson'})
ON CREATE SET a.born = 1989
ON MATCH SET a.stars = COALESCE(a.stars, 0) + 1
RETURN a
Match
(匹配)一个Person
(人)和一个Movie
(电影)- 指定一个
Person
(人)的r.roles
(角色)在这个Movie
(电影)里
MATCH (a:Person {name:'Brie Larson'}), (b:Movie {title:'Captain Marvel'})
MERGE (a)-[r:ACTED_IN]->(b) SET r.roles = ['Carol Danvers']
RETURN a,r,b
如果之前进行了
Delete
操作,则需要把删除的节点添加进来,不然运行会无结果
CREATE (a:Movie {title:'Captain Marvel', released:2019,
tagline:'Everything begins with a (her)o.'}) RETURN a
CREATE (a:Person {name:'Brie Larson', born:1989}) RETURN a
MATCH (a:Person {name:'Brie Larson'}), (b:Movie {title:'Captain Marvel'})
MERGE (a)-[r:ACTED_IN]->(b) SET r.roles = ['Carol Danvers']
RETURN a,r,b
列表操作
<>
过滤当前角色,MATCH (a:Person {name:'Brie Larson'}), (b:Movie {title:'Captain Marvel'})
MERGE (a)-[r:ACTED_IN]->(b)
SET r.roles = [x in r.roles WHERE x <> 'Captain Marvel'] + ['Captain Marvel']
RETURN a,r,b
where
操作主要用来做过滤,使用和sql
中的where
类似
- 匹配出
name
为'Tom'
开头的Person
(人)结果集
MATCH (a:Person) WHERE a.name STARTS WITH 'Tom' RETURN a
MATCH
(匹配)出released
发布时间大于1990,小于2000的Movie
(电影)节点
MATCH (a:Movie) WHERE a.released > 1990 AND a.released < 2000 RETURN a
操作说明:
MATCH
(匹配)出Movie
(电影)中存在人名为Tom Hanks
的节点- 其中是
ACTED_IN
表示节点接的关系,其中有一个属性叫做roles
角色,在这里表示电影中存在角色的关系
MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m:Movie) RETURN a,m
操作说明:
- 标题为
Cloud Atlas
的Movie
(电影)DIRECTED
导演
MATCH (m:Movie {title:'Cloud Atlas'})<-[:DIRECTED]-(d:Person) RETURN d
操作说明:
- 查找与
Tom Hanks
一起ACTED_IN
演过电影的人,打印出人名
MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(c) RETURN c.name
操作说明:
- 查找出于电影
Cloud Atlas
有联系的people.name
人名,type(relatedTo)
关系类型,relatedTo
关系信息
MATCH (people:Person)-[relatedTo]-(:Movie {title:'Cloud Atlas'})
RETURN people.name, type(relatedTo), relatedTo
操作说明:
MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..4]-(hollywood)
RETURN DISTINCT hollywood
操作说明:
Kevin Bacon
与演员Al Pacino
的最短路径MATCH p=shortestPath(
(bacon:Person {name:"Kevin Bacon"})-[*]-(a:Person {name:'Al Pacino'})
)
RETURN p
操作说明:
扩展合作者,去查找尚未与汤姆·汉克斯(Tom Hanks)合作,但是和他合作者合作过的人
MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors)
WHERE NOT (a)-[:ACTED_IN]->()<-[:ACTED_IN]-(cocoActors) AND a <> cocoActors
RETURN cocoActors.name AS Recommended, count(*) AS Strength ORDER BY Strength DESC
操作说明:
寻找可以将Tom Hanks
介绍给Tom Cruise
的人
MATCH (a:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(other:Person {name:'Tom Cruise'})
RETURN a, m, coActors, m2, other
关注公众号,持续更新哟~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。