无法使用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)) 
    } 
    } 
) 
+0

在Cypher支架不能参数节点标签。你将不得不建立字符串。 –

+0

很高兴知道。谢谢。 –

节点标签不能在Cypher中参数化。

尝试更新查询标签作为一个字符串,而不是传递一个参数:

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

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