2

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) "CREATE UNIQUE (location)-[:{ country}]->({name})"

4

2 に答える 2

3

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

パラメータは、WHERE 句のリテラルと式、START 句のインデックス値、インデックス クエリ、および最後にノード/関係 ID に使用できます。これらのパターンは、クエリ プランにコンパイルされるクエリ構造の一部であるため、プロパティ名、リレーションシップ タイプ、およびラベルとしてパラメーターを使用することはできません。

于 2014-08-19T17:54:17.810 に答える
3

関係タイプはパラメーター化できません。その理由は、リレーションシップ タイプが異なると、クエリ プランが異なる可能性があるためです。

したがって、関係タイプに関する文字列連結などを使用して暗号文字列を構築し、必要に応じて暗号パラメーターを使用する必要があります。

于 2014-08-19T11:33:12.267 に答える