2017-08-22 9 views
0

私は照会のためにcypherパラメータを使用できることを理解しています。しかし、私は戻ってきたいノードのタイプに適用できますか?たとえば、複数のノードタイプがある場合、ノードのラベルをメソッドの引数として渡して、関連するノードを動的に取得する必要があります。例えばNeo4jClientラベルでノードを取得

は:

public List<eventA> GetNodesByLabel(string labelName) 
{ 
List<eventA>> list = 
        this.client.Cypher.Match("(event:label)") 
        .Set("label = {labelParam}") 
        .WithParam("labelParam", labelName) 
        .Return(event=> event.As<eventA>()) 
        .Results; 
return list; 
} 

私は、このアプローチは

答えて

0

あなたはダイナミックラベルを追加するには、APOCの手順apoc.create.addLabelsを使用することができます仕事を得るように見えることはできません。

public List<eventA> GetNodesByLabel(string labelName) 
{ 
List<eventA>> list = 
    this.client.Cypher.Match("(event:label)") 
    .Call("apoc.create.addLabels(event, [{labelParam}])").Yield("node") 
    .WithParam("labelParam", labelName) 
    .Return(event=> event.As<eventA>()) 
    .Results; 
return list; 
} 
+0

私はYieldコマンドのコマンドは何ですか?その引数になるべきものと、なぜ引数として "node"を使用したか – Koh

+0

'YIELD'は実際に' CALL'節の一部であり、戻り値を示します。 'node'識別子は実際には' apoc.create.addLabels'手続きの署名の一部であり、その識別子名を使用しなければなりません(しかし 'YIELD node AS foo'のように名前を変更することができます)。 – cybersam

+0

それはうまくいくようですが、返された結果は0です。 – Koh

関連する問題