Neo4j根据特定身份

时间:2017-07-03 13:50:54

标签: neo4j cypher

我的数据库存储家庭关系。

我要做的是返回具有特定ID的人的整个家谱。

我尝试了以下查询:

MATCH (p:Person {id:'1887'})-[r*1..3]-(k:Person)
RETURN distinct(p), r, k

但我没有得到我想要的结果。

为了更清楚,我希望得到具有指定ID的人的所有关系,以及他所连接的所有其他节点的关系。

进一步解释,这是一个例子:

鲍里斯是迈克和安娜的父母。除了看到鲍里斯与他们的关系外,我还希望看到迈克和安娜与子图的进一步关系。

1 个答案:

答案 0 :(得分:2)

我相信你应该尝试返回完整的路径,如下所示:

MATCH path = (p:Person {id:'1887'})-[r*1..3]-(k:Person)
RETURN path

此查询将存储具有id = 1887的人与深度为1到3的另一个人之间的路径,并将其返回。或者,如果您只对节点感兴趣,可以使用nodes()函数提取它:

MATCH path = (p:Person {id:'1887'})-[r*1..3]-(k:Person)
RETURN nodes(path)
相关问题