我一直在尝试使用 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 (理想情况下,我不想换成其他版本)
尝试使用 WHERE
子句而不是内联过滤器。也许py2neo在这方面有问题。
MATCH (node)-[r]->(n)
WHERE node.name = $nodename
RETURN r,n