Py2neo: 如何正确使用 graph.run?

问题描述 投票:0回答:1

我一直在尝试使用 py2neo 从我的 neo4j 数据库中读取数据,尤其是我想执行下面的 cypher 查询。

MATCH (node {name:"shoes"})-[r]->(n) RETURN r,n; //This works well in cypher-shell

现在,使用py2neo查询的等价物是以下内容。

g.run("MATCH (node {name:$nodename})-[r]->(n) RETURN r,n",parameters={"nodename":"shoes"}).data()

然而,执行上述查询时,我得到了一个错误,类似这样。

py2neo.database.ClientError: SyntaxError: The old parameter syntax '{param}' is no longer supported. Please use '$param' instead (line 1, column 25 (offset: 24)) "MATCH (_) WHERE id(_) = {x} RETURN _, labels(_)"

但我在上面的查询中正确地使用了$惯例。这是因为如果我在参数值为空的情况下运行同样的查询,我没有得到任何错误,而且py2neo返回一个空列表。

g.run("MATCH (node {name:$nodename})-[r]->(n) RETURN r,n",parameters={"nodename":""}).data() //This runs fine and returns []

谁能告诉我这个问题?我的py2neo版本是4.3.0 (理想情况下,我不想换成其他版本)

python py2neo
1个回答
0
投票

尝试使用 WHERE 子句而不是内联过滤器。也许py2neo在这方面有问题。

MATCH (node)-[r]->(n)
WHERE node.name = $nodename
RETURN r,n
© www.soinside.com 2019 - 2024. All rights reserved.