Neo4jでは、startNode(relationship), endNode(relationship)
を使用して、関係のあるノードの開始点と終了点を指定します。Neo4jスカラー関数(C言語)#
私のサンプルクエリはこれです:
match p=(n1 {Identifier:<id>})-[:r1|r2*2]-(n2) unwind relationships(p) as rel return distinct startNode(rel) as n1, type(rel), endNode(rel) as n2
ので、基本的にはその可変長の関係と私はタイプだけでなく、各関係の開始と終了ノードを取得することができます。
startNodeまたはendNodeを指定しないと、実際には互いに接続されていない余分なノードが得られます。
これはneo4jのcypherで完璧に動作しますが、C#でstartNodeとendNode(Scalar関数)を実行する方法がわかりません。現在
私はこれを持っている:
var data = client.Cypher.Match("(n1)")
.Where((Node n1) => n1.Identifier == identifier)
.OptionalMatch("p=(n1)-[:r1|r1*2"]-(n2)")
.Unwind("relationships(p)", "rel")
.ReturnDistinct((n1, rel, n2) => new
{
startNode = n1.As<Node<string>>(),
endNode = n2.As<Node<string>>(),
relationship = rel.As<RelationshipInstance<object>>()
}).Results;
これがないstartNodeとエンドノードの機能を実行するので、私は実際にお互い
任意のアイデアに接続されていない余分なノード-関係を取得することですC#neo4jクライアントでstartNodeとendNode関数をどのように実現するのですか?あなたがNeo4jClient
のReturn.As
部品を使用する必要が
私はこの回答を更新するのを忘れましたが、それはまさに私が3日前にしたことです。とにかくありがとうございます –
私が追加したい別の質問があります。パラメータがneo4jクエリに組み込まれていないparamsでクエリをフォーマットする方法はありますか?すなわち、where節でParamsやNodeのプロパティを使ってやることができます。しかし、私はその表現で* 2の2番目にParamと一緒に使うことはできません。深いレベルのように、私はグラフを横断したい。私の唯一の解決策はstring.formatを使用することですが、これはinjeciton攻撃に対して脆弱です...? –
これはNeoの制限ですが、パラメータはそこでは機能しません: - / –