假设 a,b,c 和 b,d,e 和 c,f,g 和 a,e,g,h 是 friend 。所以
获取共同好友 b/w a&b:
MATCH (me:User {username:'a'}) -[r:FRIENDS]-(mutualfriends)
-[r:FRIENDS]- (u:User {username:'b'})
RETURn mutualfriends
现在如何从上面获取所有普通 friend 和用户'a'?
我们也可以在一个查询中完成所有这些吗?非常感谢任何帮助。
最佳答案
- 不要使用
r
两次,否则您将无法获得 mutual-friends 的正确结果。实际上你根本不需要r
。
你继续匹配就可以了。
MATCH (me:User {username:'a'})-[:FRIENDS]-(mf)-[:FRIENDS]-(u:User {username:'b'})
WITH distinct me, mf
MATCH (me)-[:FRIENDS]-(mmf)-[:FRIENDS]-(mf)
RETURN distinct mmf
关于neo4j - 使用neo4j获得2个用户之间的共同 friend 以及用户和普通 friend 之间的所有共同 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30428239/