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

Getting node by id and parameters with Neo4j-Driver for nodejs

我正在尝试 return 具有 id 的特定节点(在我的 nodejs 服务器中使用 neo4j-driver 包)。我有我要搜索的节点的 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 的节点?

谢谢

如驱动程序文档中所写:

Number written directly e.g. session.run("CREATE (n:Node {age: {age}})", {age: 22}) will be of type Float in Neo4j. To write the age as an integer the neo4j.int method should be used... 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
  })