使用Neo4j-Driver for Node.js通过ID和参数获取节点

时间:2018-07-02 19:44:28

标签: node.js neo4j parameters neo4j-driver

我正在尝试返回具有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的节点?

谢谢

1 个答案:

答案 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
  })