типы отношений в py2neo

Как я могу получить тип отношения с шифрованным запросом в py2neo? У меня есть этот кусок кода, который работает.

def print_row(row):
    a,b = row
    print (a["name"] + " " + b["name"])

cypher.execute(graph_db, "START a=node(1) MATCH (a) - [] - (b)  RETURN a,b", row_handler=print_row) 

Таким образом я могу распечатать узлы, которые подключены к моему входному узлу (1).

ROCK PAPER
ROCK SCISSORS

Однако я хотел бы напечатать тип отношений, которые имеют эти узлы.

Например:

ROCK BEATS SCISSORS
ROCK BEATEN_BY PAPER

То, что я пробовал (и не удалось), выглядит следующим образом:

def print_row(row):
    a,b,r = row
    print (a["name"] + r["type"] + b["name"])

cypher.execute(graph_db,"START a=node(1) MATCH (a) -[r]->(b) RETURN a,b,r", row_handler=print_row)

Как я могу сделать это с помощью py2neo?


person menenuh    schedule 17.07.2013    source источник


Ответы (1)


Вам необходимо использовать функцию Cypher TYPE (http://docs.neo4j.org/chunked/milestone/query-functions-scalar.html#functions-type). Тогда ваш код будет выглядеть примерно так:

def print_row(row):
    a, r_type, b = row
    print(a["name"] + " " + r_type + " " + b["name"])

cypher.execute(graph_db, "START a=node(1) MATCH (a)-[r]->(b) RETURN a, TYPE(r), b", row_handler=print_row)
person Nigel Small    schedule 17.07.2013