[英]Mutual followers cypher script - neo4j
我正在努力寻找共同的追随者。 关注我 (ID) 并关注我的一位关注者 (followerID) 的人。 关系是 [:FOLLOWS{status:accepted}] 。
例如 MATCH (user:User)-[:FOLLOWS {status: 'accepted'}]->(:User {ID:$ID}) RETURN user
这个查询给了我的追随者。
当给出 ID 和 followerID 时,我如何找到共同的关注者?
尝试以下查询:
MATCH (user:User)-[:FOLLOWS {status: 'accepted'}]->(:User {ID:$ID})
WITH collect(user) as followers
UNWIND followers as follower
MATCH (follower)-[:FOLLOWS {status: 'accepted'}]->(node)
WHERE node in followers
RETURN follower
你可以找到这样的三角形。 您可以在不指定 followerID 的情况下获取您自己的关注者之一的关注者。
MATCH (me:User {ID:$ID})<-[:FOLLOWS {status: 'accepted'}]-(mutualFollower:User),
(mutualFollower)-[:FOLLOWS {status: 'accepted'}]->(myFollower:User),
(myFollower)-[:FOLLOWS {status: 'accepted'}]->(me)
// return the list of your followers, with for each the list of followers that you have in common.
RETURN myFollower.ID AS myFollower,
COLLECT(DISTINCT mutualFollower.ID) AS mutualFollowers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.