py2neo中的关系类型

时间:2013-07-17 12:16:05

标签: neo4j py2neo

如何在py2neo中获取与cypher查询的关系类型? 我有这段代码可行。

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执行此操作?

1 个答案:

答案 0 :(得分:2)

您需要使用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)