Py2neo与Neo4j的关系

时间:2013-05-13 07:22:52

标签: neo4j relation py2neo

如何获得关系的结束节点。 例如:

rels = graph_db.match(start_node=user, rel_type="is_post_owner")

那么如何才能获得起始节点用户的所有终端节点。

问候,塞缪尔

2 个答案:

答案 0 :(得分:1)

像这样:

rels = graph_db.match(start_node=user, rel_type="is_post_owner")
end_nodes = [rel.end_node for rel in rels]

match方法返回的每个关系都是标准Relationship对象,可以这样使用。

答案 1 :(得分:0)

您可以使用密码

START a=node(id) //replace with the id of the node you want to start 
MATCH p=a-[:is_post_owner*..]->x //get all the paths to all nodes with rel:is_post_owner
WHERE NOT(x-->()) //exclude nodes with Direction Out Relationships "end nodes"
RETURN x //get the end nodes

这样返回的节点将成为图形的叶节点,与方向输出没有其他关系。

正如托马斯所说,他绝对是正确的,你应该在where子句中包含关系类型。这样你只得到那个关系的结束节点,并且返回的节点可以与方向输出有其他关系(不是叶子)节点)但它们是所请求关系的终端节点

 START a=node(id) 
 MATCH p=a-[r:is_post_owner*..]->x 
 WHERE NOT(x-->(r)) 
 RETURN x