Neo4j过滤节点只有一种关系

时间:2015-05-25 10:24:20

标签: neo4j cypher

我是neo4j的新手,我在这个练习中陷入了困境。我必须找到在他们的城市只有朋友的学生的名字和城市。图表是这样的: enter image description here

关系的名称是" FRIEND_OF",颜色代表城市。

非常感谢。

1 个答案:

答案 0 :(得分:1)

由于city属性存储在节点上,您可以添加WHERE子句:

MATCH (user:User)
MATCH (user)-[:FRIEND_OF]-(friend)
WHERE user.city = friend.city
RETURN user.name, collect(distinct(friend)) as friends

修改 如果你想回到所有朋友住在同一个城市的用户,试试这个:

MATCH (user:User)-[:FRIEND_OF]->(friend)
WITH user, collect(friend) AS friends
WHERE ALL (x IN friends 
           WHERE x.city = user.city)
RETURN user