无法使用Neo4j REST API动态设置节点标签

时间:2015-10-05 20:39:45

标签: rest neo4j

根据the Neo4j REST API transactional page上提出的语法,我尝试运行请求"CREATE (node:{group} { name: {name}}) RETURN node", { group: "Group", name: "Name"}

使用:{group}作为动态变量会导致错误:

  

“Neo.ClientError.Statement.InvalidSyntax”,“message”:“无效输入'{':预期的空格或标签名称

这是我的导航错误,Neo4j查询解析器中的错误,还是无法完成的事情?

这是我的Nodej.s代码:

var request = require("request")
var host = 'localhost'
  , port = 7474
  , user = "neo4j"
  , pass = "1234"
var uri = 'http://' + user + ":" + pass + "@" + host + ':' + port + '/db/data/transaction/commit'

function runCypherQuery(query, params, callback) {
  request.post({
      uri: uri,
      json: {statements: [{statement: query, parameters: params}]}
    },
    function (err, res, body) {
      callback(err, body)
    })
}

runCypherQuery(
  "CREATE (node:{group} { name: {name}}) RETURN node"
, { group: "Group"
  , name: "Name"
  }
, function (err, resp) {
    if (err) {
      console.log(err)
    } else {
      console.log(JSON.stringify(resp))
    }
  }
)

2 个答案:

答案 0 :(得分:3)

节点标签无法在Cypher中参数化。

尝试将查询中的标签更新为字符串,而不是传递参数:

"CREATE (node:" + group + " {name: {name}}) RETURN node"

答案 1 :(得分:1)

不幸的是,Cypher不支持参数化标签名称。