我有PERSON
的图表,PERSON
可以是FRIEND
个PERSON
,OWN
OBJECT
例如:
a-FRIEND-b
a-FRIEND-c
b-FRIEND-c
c-OWN-"car"
我想允许有需要的人找到朋友或朋友的朋友拥有这个东西,所以我用:
MATCH (me:PERSON)-[:FRIEND*1..2]-(p:PERSON)-[o:OWN]->(obj:OBJECT)
WHERE me.id = {userId}
RETURN p
但如果“a”想要“汽车”,我会两次得到“c”,因为我可以通过两种方式到达那里:
a-FRIEND-c-OWN-"car"
a-FRIEND-b-FRIEND-c-OWN-"car"
我怎样才能确保我只获得一次“c”?
答案 0 :(得分:2)
只需将DISTINCT修饰符添加到return语句中:
MATCH (me:PERSON)-[:FRIEND*1..2]-(p:PERSON)-[o:OWN]->(obj:OBJECT)
WHERE me.id = {userId}
RETURN DISTINCT p