前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Neo4j Cypher语法整理

Neo4j Cypher语法整理

作者头像
算法之名
发布2020-10-28 14:48:53
2.3K0
发布2020-10-28 14:48:53
举报
文章被收录于专栏:算法之名

查询John的朋友的朋友

添加5个人名节点,名字分别为

代码语言:javascript
复制
CREATE (:People{name:"John"})
CREATE (:People{name:"Joe"}) 
CREATE (:People{name:"Sara"}) 
CREATE (:People{name:"Steve"}) 
CREATE (:People{name:"Maria"})

此时查询所有人的结果如下

代码语言:javascript
复制
match (people:People) return people

给这5个人添加上朋友关系

代码语言:javascript
复制
MATCH (a:People{name:"John"}) MATCH (b:People{name:"Joe"}) CREATE (a) -[:friend]->(b)
MATCH (a:People{name:"John"}) MATCH (b:People{name:"Sara"}) CREATE (a) -[:friend]->(b)
MATCH (a:People{name:"Joe"}) MATCH (b:People{name:"Steve"}) CREATE (a) -[:friend]->(b)
MATCH (a:People{name:"Sara"}) MATCH (b:People{name:"Maria"}) CREATE (a) -[:friend]->(b)

再次查询

代码语言:javascript
复制
match (people:People) return people

查询John朋友的朋友的名字

代码语言:javascript
复制
match (john {name:'John'})-[:friend]->()-[:friend]->(fof) return john.name,fof.name

结果

因为这里查询的只是名字,而不是节点,所以只会显示各自的名称。

  • 给定一个用户名列表,找到名字在列表中的所有节点。匹配他们的朋友,仅返回那些他们关注的name属性以'S'开头的用户
代码语言:javascript
复制
match (user)-[:friend]->(follower) where user.name in ['Joe','John','Sara','Maria','Steve']
 and follower.name =~'S.*' return user.name,follower.name

结果

  • 获取John和他的朋友数量
代码语言:javascript
复制
match (n {name:'John'})-[:friend]->(friend) with n,count(friend) as friendsCount return n,friendsCount
  • 获取John的朋友数量并保存为John的一个属性
代码语言:javascript
复制
match (n {name:'John'})-[:friend]->(friend) with n,count(friend) as friendsCount set n.friendsCount=friendsCount return n.friendsCount
  • 查询朋友的朋友,不包含自己

添加3个用户,两个好友关系

代码语言:javascript
复制
create (adam:User {name:'Adam'}),(pernilla:User {name:'Pernilla'}),
(david:User {name:'David'}),(adam)-[:friend]->(pernilla),
(pernilla)-[:friend]->(david)

查询结果

代码语言:javascript
复制
match (n:User) return n
代码语言:javascript
复制
match (user {name:'Adam'})-[:friend]->()-[:friend]->(friend) return friend
代码语言:javascript
复制
match (user {name:'Adam'})-[:friend]->(friend),(friend)-[:friend]-(alluser) return alluser

该方式也是不包含自己的,可以与下面包含自己的做出比较。

  • 查询朋友的朋友,包含自己 match (user {name:'Adam'})-[:friend]->(friend) match (friend)-[:friend]-(alluser) return alluser
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档