NodeJs-Neo4j params вопрос о связи именования


Я не могу использовать объект 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}]->({Имя})"

2 2

2 ответа:

Http://docs.neo4j.org/chunked/stable/cypher-parameters.html

Параметры

Можно использовать для литералов и выражений в предложении WHERE, для значения индекса в предложении START, индексных запросов и, наконец, для идентификаторов узлов и отношений. Параметры нельзя использовать как для имен свойств, типов отношений и меток, так как эти шаблоны являются частью структуры запроса, которая компилируется в план запроса.

Тип отношений не может быть параметризован. Причина в том, что другой тип отношений может привести к другому плану запроса.

Таким образом, вы должны построить строку шифра, используя, например, конкатенацию строк относительно типа связи и использовать параметры шифра, где это уместно.