我正在尝试返回一个带有 id 的特定节点(在我的 nodejs 服务器中使用 neo4j 驱动程序包(。我有我正在搜索的节点的 ID。所以我在运行方法中使用了参数,如下所示,但我没有得到任何节点。
session.run('MATCH (n:User)-[:OWN]->(a) WHERE id(n) = $id RETURN a',{id: idUser})
我检查了一下,idUser值是128,当我运行这个命令时,我得到了正确的节点。
session.run('MATCH (n:User)-[:OWN]->(a) WHERE id(n) = 128 RETURN a',{id: idUser})
有没有人可以使第一个命令工作,以便我可以获取给定 id 的节点?
谢谢
正如驱动程序文档中所写:
直接写入的数字,例如 session.run("CREATE (n:Node {age: {age}}(", {age: 22}( 在 Neo4j 中将是 Float 类型。写年龄 作为整数,应使用 neo4j.int 方法... https://github.com/neo4j/neo4j-javascript-driver#write-integers
因此,当您从节点传递标识符时.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
})