繁体   English   中英

Neo4j找到具有相同属性的节点

[英]Neo4j find nodes with the same properties

我有一个Neo4j图表,其中每个节点都是一个人。 每个人都有两个属性:姓名和城市。 关系是:朋友和爱。

我正在尝试获得仅在同一城市拥有朋友的节点(住在巴黎,巴黎B,马德里C,马德里D,A- [friend_of] - > B,B- [friend_of] - > C a A- [friend_of] - > C,D- [friend_of] - > CI只需要获得A和D,因为他们的朋友住在他们的同一个城市并且只在那里)并按城市排序,然后按名称排序。

我尝试过以下方法:

MATCH (n)-[r:FRIEND_OF]-(n1) WHERE (n.City = n1.City) RETURN n,n1 ORDER BY n.City, n.Name

这给了我想要的节点,但其中一些也是错的(他们在其他城市有朋友)。

谢谢!

基于以下neo4j控制台http://console.neo4j.org/r/5c2n8h ,此查询仅返回D所需:

MATCH (user:User)-[:FRIEND_OF]-(friend)
WITH user, collect(friend) AS friends
WHERE ALL (f IN friends WHERE f.City = user.City)
RETURN user
ORDER BY user.City, user.name

尝试这个:

MATCH (u:User {name:"carlos"})-[:FRIEND_OF]-(f:User) 
WITH u, collect(f) as friends
WHERE ALL(f in friends WHERE f.City = u.City)
UNWIND friends as friend
RETURN friend
ORDER BY friend.City, friend.Name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM