如何在 Neo4J 中引用 ID 作为参数

How to reference ID as param in Neo4J

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

:params "id": 35831

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

预期结果:节点

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

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

在Neo4j浏览器中,当你设置一个数字参数时,它的类型是一个float。当您键入 :params "id": 35831 时查看结果,您应该看到 35831.0 作为一个值。

这就是为什么您的查询 returns 没有...

但是如果您使用此查询 MATCH (n) WHERE id(n)=toInteger($id) RETURN n 它会起作用!

仅供参考,这仅适用于浏览器,如果您使用 cypher-shell,它将如您所愿地工作:

neo4j> :param id 5
neo4j> MATCH (n) WHERE id(n)=$id RETURN n;

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

:param id => 1

....

{
  "id": 1
}

那么您的查询将正常工作:

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