繁体   English   中英

相互追随者密码脚本 - neo4j

[英]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.

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