如何在 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
我有一个内部 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