根据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))
}
}
)
答案 0 :(得分:3)
节点标签无法在Cypher中参数化。
尝试将查询中的标签更新为字符串,而不是传递参数:
"CREATE (node:" + group + " {name: {name}}) RETURN node"
答案 1 :(得分:1)
不幸的是,Cypher不支持参数化标签名称。