我正在尝试返回具有ID的特定节点(在我的nodejs服务器中使用neo4j-driver软件包)。我有要搜索的节点的ID。因此,如下所示,我在run方法中使用了参数,但没有得到任何节点。
session.run('MATCH (n:User)-[:OWN]->(a) WHERE id(n) = $id RETURN a',{id: idUser})
我检查了一下,idUser-value是128,当我运行此命令时,我得到了正确的节点。
session.run('MATCH (n:User)-[:OWN]->(a) WHERE id(n) = 128 RETURN a',{id: idUser})
有没有人可以使第一个命令起作用,所以我可以获取给定id的节点?
谢谢
答案 0 :(得分:0)
如驱动程序文档中所述:
直接写的数字,例如session.run(“ CREATE(n:Node {age: {age}})“,{age:22})在Neo4j中将为Float类型。 作为一个整数,应使用neo4j.int方法... https://github.com/neo4j/neo4j-javascript-driver#write-integers
因此,当您从node.js传递标识符时,需要对其进行转换:
session
.run('MATCH (n:User)-[:OWN]->(a) WHERE id(n) = $id RETURN a', {
id: neo4j.int(idUser)
})
或:
session
.run('MATCH (n:User)-[:OWN]->(a) WHERE id(n) = toInteger($id) RETURN a', {
id: idUser
})