如何为无向关系获取一组唯一的节点对

时间:2015-10-12 14:19:51

标签: neo4j cypher

我有一套简单的无向关系:

(p1)-[r:appears_in_same_doc]-(p2)

我想从中提取id(p1),id(p2)对。但是,当我执行以下操作时:

MATCH (p1:person)-[r:appear_in_same_document]-(p2:person)
return id(p1), id(p2)

我明白了:

id(p1) | id(p2
-------+------
 1     |  2
 2     |  1
 1     |  3
 3     |  1
 etc.

也就是说,我得到每对节点,两种可能性:

p1, p2 AND p2, p1

在结果集中。这在我工作的应用程序中是不受欢迎的,但我无法弄清楚如何只获得一半的“可能性”。即。

id(p1) | id(p2
-------+------
 1     |  2
 1     |  3
 etc.

1 个答案:

答案 0 :(得分:3)

只做

MATCH (p1:person)-[r:appear_in_same_document]-(p2:person)
where id(p1) > id(p2)
return id(p1), id(p2)