2013-05-13 1 views
0

어떻게 관계의 끝 노드를 얻을 수 있습니까? 예를 들어 : Py2neo에서 Neo4j와의 관계

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

그래서 내가 시작 노드 사용자의 모든 최종 노드를 얻을 수있는 방법.

감사합니다, 사무엘

답변

1

의 마지막 노드입니다 :

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

각 관계가 match 메서드에서 반환 된 표준 Relationship 산부인과입니다 ject로 사용할 수 있습니다.

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 절에 관계 유형을 포함해야합니다. 그런 식으로 관계의 끝 노드 만 가져오고 반환 된 노드는 방향과 다른 관계를 가질 수 있습니다 (not 리프 노드)하지만이 요청 된 관계 이와 같이

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

관계 유형을 WHERE에 추가해야하며 그렇지 않은 다른 유형이있을 수 있습니다. –