Neo4j 过滤只有一种关系的节点

Neo4j filtering nodes with only one type of relationship

我是 neo4j 的新手,我被困在这个练习中。我必须找到在他们的城市只有朋友的学生的姓名和城市。该图是这样的:

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

非常感谢。

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

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

编辑 如果你想 return 个朋友都住在同一个城市的用户,试试这个:

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