以推荐用户功能为例学习图库neo4j 节点关系查询
需求:
查出某用户与其他用户的共同通讯录好友:
准备:
将用户数据、关系数据导入neo4j中(非本文重点,略)
一、Neo4j中的节点及关系:

-
蓝色表示节点:用户/ID,绿色表示节点:手机号,线H表示关系:拥有
-
这样,这个图表示的就是100002和25730032用户有如图绿色的7个共同通讯录好友
-
附查询语句:
MATCH (a:Person {uid : '100002'})-[:H]->(m)<-[:H]-(b:Person) where b.uid in ['25730032'] return a,m,b;
二、查询语句分析
上面的仅是查询某个人和另一个人的共同通讯录好友,而我们的需求是查询某个人和其他所有人的共同通讯录好友,去掉where条件即可,下图:

查询语句:
MATCH (a:Person {uid : '100002'})-[:H]->(m)<-[:H]-(b:Person) return a,m,b limit 100;
查询分析:
- MATCH 匹配,可以理解为找出这样一条路径:用户a->某个手机号m->用户b,文字描述为:用户a拥有手机号m,b也有手机号m,即a b 共同通讯录好友的记录,可以看成sql查询的二维表;
- where 可以从这个表中过滤掉不需要的记录;
- RETURN 相当于sql的select
- 最后可以加上分页skip、 limit