使用 Neo4j-Driver for nodejs 按 id 和参数获取节点



我正在尝试返回一个带有 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
})

最新更新