无法使用Neo4j REST API动态设置节点标签
问题描述:
按照the Neo4j REST API transactional page上提出的语法,我尝试运行请求"CREATE (node:{group} { name: {name}}) RETURN node", { group: "Group", name: "Name"}
。无法使用Neo4j REST API动态设置节点标签
是一个动态变量的使用:{group}
导致错误:
"Neo.ClientError.Statement.InvalidSyntax","message":"Invalid input '{': expected whitespace or a label name
并不是我的这个飞行员操作失误,在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))
}
}
)
答
节点标签不能在Cypher中参数化。
尝试更新查询标签作为一个字符串,而不是传递一个参数:
"CREATE (node:" + group + " {name: {name}}) RETURN node"
答
不幸的是,Cypher支架不支持参数的标签名称。
在Cypher支架不能参数节点标签。你将不得不建立字符串。 –
很高兴知道。谢谢。 –