0

我有一个内部id35831 的节点。我在 Neo4J 浏览器中运行以下代码:

:params "id": 35831

match (t) where id(t) = $id return t

预期结果:节点

实际结果:(无变化,无记录)

这是预期的行为还是我应该提供有关我的 neo4j 版本的信息?

4

2 回答 2

1

在 Neo4j 浏览器中,当您设置数值参数时,其类型为浮点数。键入时查看结果:params "id": 35831,您应该将35831.0其视为一个值。

这就是为什么您的查询什么也不返回的原因......

但是,如果您使用此查询MATCH (n) WHERE id(n)=toInteger($id) RETURN n,它就可以工作!

仅供参考,这仅适用于浏览器,如果您使用cypher-shell,它将像您想要的那样工作:

neo4j> :param id 5
neo4j> MATCH (n) WHERE id(n)=$id RETURN n;
于 2019-10-07T08:28:14.087 回答
1

您可以使用以下语法在浏览器中设置参数:

:param id => 1

....

{
  "id": 1
}

然后您的查询将正常工作:

 match (t) where id(t) = $id return t
于 2019-10-07T10:14:43.030 回答