1
我有以下查询,我想避免重复的路径(simetric也)。neo4j密码避免重复路径
MATCH (a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a) return a,b
我已尝试DISTINCT
关键字,但我得到和语法错误。
林寻找类似(但也失败了):
MATCH path=(a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a)
where DISTINCT(path)
return a,b
我没有看到它,怎么一个<> b避免得到相同的配对不止一个。 – Ricardo
不是'<>',而是大于或小于'。你匹配'a - [:LIKES] - > b'并且相反'b - [:LIKES-> a'。所以当你得到这些闭环匹配之一时,它会向前和向后运行。你要返回的是一对节点,所以对于每两个人他们将在每个位置与一个人产生两场比赛。比较运算符的原则是只返回其中一个匹配。由于节点的ID始终存在且唯一,因此总是会比另一个更大,并且只返回一对而不是两次。 –