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
我是 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