• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Neo4j 使用cypher语言进行查询

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Neo4j是一个Java开发的图数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。Neo4j还提供了非常快的图算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。它提供了广泛使用的REST接口,能够方便地集成到基于JAVA、PHP、.NET和JavaScript的环境里。

创建节点

CREATE (ee:员工 { 姓名: "张勇", 来自: "中国" , 年龄 : 99 })
  • 通过CREATE创建一个节点
  • () 代表一个节点
  • ee:员工 变量\'ee\',标签label是 \'员工\'
  • {} 包含了属性

自己动手写个Demo试试

CREATE (p1:Person {name:\'胡兴炯\', born:1991, interest:\'mac,ios,旅游\', goodat:\'java,swift,objectiveC\'})
CREATE (p2:Person {name:\'张勇\', born:1990,  interest:\'android\', goodat:\'java,android\'})
CREATE (p3:Person {name:\'成文龙\', born:1990, interest:\'linux,hadoop\', goodat:\'linux,java,android\'})
CREATE (p4:Person {name:\'王昕\', born:1978, interest:\'wpf,noSQL,旅游\', goodat:\'java,c#\'})
CREATE (p5:Person {name:\'周开琪\', born:1977 , interest:\'管理\', goodat:\'管理,\'})
CREATE (p6:Person {name:\'徐锦亮\', born:1985,  interest:\'前端\', goodat:\'前端,html5\'})
CREATE (p8:Person {name:\'徐辉霞\', born:1990,  interest:\'管理,旅游\', goodat:\'管理,采购\'})
CREATE (p9:Person {name:\'黄廷鹏\', born:1992,  interest:\'OA\', goodat:\'java\'})
CREATE (p10:Person {name:\'史乐乐\', born:1991,  interest:\'OA,旅游\', goodat:\'管理\'})

CREATE (p1)-[:认识]->(p2)
CREATE (p1)-[:认识]->(p3)
CREATE (p1)-[:认识]->(p4)
CREATE (p1)-[:认识]->(p5)
CREATE (p1)-[:认识]->(p9)

CREATE (p2)-[:认识]->(p1)
CREATE (p2)-[:认识]->(p3)
CREATE (p2)-[:认识]->(p4)
CREATE (p2)-[:认识]->(p5)
CREATE (p2)-[:认识]->(p9)

CREATE (p3)-[:认识]->(p1)
CREATE (p3)-[:认识]->(p2)
CREATE (p3)-[:认识]->(p4)
CREATE (p3)-[:认识]->(p5)
CREATE (p3)-[:认识]->(p9)

CREATE (p4)-[:认识]->(p1)
CREATE (p4)-[:认识]->(p2)
CREATE (p4)-[:认识]->(p3)
CREATE (p4)-[:认识]->(p5)
CREATE (p4)-[:认识]->(p9)

CREATE (p5)-[:认识]->(p1)
CREATE (p5)-[:认识]->(p2)
CREATE (p5)-[:认识]->(p3)
CREATE (p5)-[:认识]->(p4)
CREATE (p5)-[:认识]->(p6)
CREATE (p5)-[:认识]->(p8)
CREATE (p5)-[:管理]->(p1)
CREATE (p5)-[:管理]->(p2)
CREATE (p5)-[:管理]->(p3)
CREATE (p5)-[:管理]->(p4)
CREATE (p5)-[:管理]->(p6)

CREATE (p6)-[:认识]->(p5)
CREATE (p6)-[:认识]->(p4)
CREATE (p6)-[:夫妻]->(p8)

CREATE (p9)-[:认识]->(p1)
CREATE (p9)-[:认识]->(p2)
CREATE (p9)-[:认识]->(p3)
CREATE (p9)-[:认识]->(p10)
CREATE (p9)-[:单相思]->(p10)

CREATE (p10)-[:认识]->(p9)

运行完上面脚本的效果

查找所有擅长goodat“管理”的人

MATCH (n:Person ) WHERE n.goodat =~ \'.*管理.*\' return n;

查找成文龙“认识“的人

MATCH (n:Person { name: \'成文龙\' })-[:认识]-(neighbors) RETURN n,neighbors

查找所有“单相思”的人

MATCH (n:Person)-[:单相思]-(neighbors) RETURN n,neighbors

查找周开琪“管理”的人

MATCH (n:Person { name: \'周开琪\' })-[:管理]-(neighbors) RETURN n,neighbors

查找徐辉霞“认识“的人 (2层关系网络)

MATCH (n:Person { name: \'徐辉霞\' })-[:认识*1..2]-(neighbors) RETURN n, collect(DISTINCT neighbors)

查找徐辉霞“认识“的人 (3层关系网络)

MATCH (n:Person { name: \'徐辉霞\' })-[:认识*1..3]-(neighbors) RETURN n, collect(DISTINCT neighbors)

徐锦亮找到史乐乐的所有最短路径 (不超过4层)

MATCH p=allShortestPaths(
(a:Person { name: \'徐锦亮\' })-[:认识*..4]-(b:Person { name: \'史乐乐\'})
)
RETURN p

删除所有节点和关系

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言--史上最全方差分析发布时间:2022-07-18
下一篇:
R语言爬虫系列2|XML&XPath表达式与R爬虫应用发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap