2013-05-13 5 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.Таким образом, вы получаете только конечный узел этих отношений, а возвращаемые узлы могут иметь другие отношения с направлением (не листовые узлы), но они являются конечными узлами запрашиваемого отношения

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

Вы должны добавить тип отношения в ГДЕ нет, могут быть другие, несвязанные –

Смежные вопросы