我无法使用params对象来命名2个节点之间的关系,
这是代码
var neo4j = require('neo4j');
var db = new neo4j.GraphDatabase('http://localhost:7474');
var params = {
name: {
firstname: "SRI",
lastname: "lanka"
},
relname: "country"
};
var query = [
'MATCH (location:PRIMARY {name:"location"})',
'CREATE UNIQUE (location)-[:{relname}]->({name})'
].join('\n');
db.query(query, params, function(err, results) {
if (err) throw err;
console.log(results);
});
这是错误。如何利用参数命名关系
错误:无效的输入'{':预期的空格或rel类型名称(第2行,第28列)
“创建独特(位置) - [:{country
}] - >({name})”
答案 0 :(得分:3)
无法参数化关系类型。原因是不同的关系类型可能会导致不同的查询计划。
所以你应该使用例如密码来构建密码字符串。关于关系类型的字符串连接,并在适当的时候使用Cypher参数。
答案 1 :(得分:3)
http://docs.neo4j.org/chunked/stable/cypher-parameters.html
参数可用于WHERE子句中的文字和表达式,用于START子句中的索引值,索引查询以及最后用于节点/关系id。参数不能用作属性名称,关系类型和标签,因为这些模式是编译到查询计划中的查询结构的一部分。