【发布时间】:2021-12-20 04:50:52
【问题描述】:
我有一个密码查询,它返回推荐给用户关注的用户列表,但在执行密码时得到重复的结果。
这是密码查询:
MATCH (user:User { id: $userId })
MATCH (user)-[interestRel:INTERESTED_IN]->()<-[:INTERESTED_IN]-(recommendedUsers)
WITH DISTINCT recommendedUsers, interestRel, user
WHERE NOT recommendedUsers = user AND
NOT exists((user)-[:FOLLOWING]->(recommendedUsers))
RETURN recommendedUsers {
.id,
following: false
} ORDER BY interestRel.interestLevel DESC SKIP $skip LIMIT $limit
我知道会有重复,因为一个用户可能是INTERESTED_IN多个节点,所以在遍历INTERESTED_IN关系时,对于每个具有INTERESTED_IN关系的节点,都会返回重复的用户。但是我返回DISTINCT用户,所以我不明白为什么仍然返回重复用户。
我注意到,当INTERESTED_IN 关系绑定到查询中使用的变量 (interestRel) 时,就会返回重复的结果。
如何摆脱重复项并仍然引用INTERESTED_IN (interestRel) 关系?
【问题讨论】:
-
你可以总结兴趣水平,我猜这很有意义
-
是的,我想是的。谢谢
标签: neo4j cypher neo4j-driver