関係に基づいてノードとそれに関連するすべてのノードを返す必要があります。自分自身で「n」のノードを取得するために、より効率的で、その後、別の呼び出しでのパスを取得する、または私はcallthat戻り「N」を実行すべきだろうNeo4jの結果を得る最も効率的な方法
MATCH (n) where id(n)= {neo_id}
OPTIONAL MATCH p=(n)-[:OWNS]->(q)
:クエリの例は次のようになりますと 'p'。
Addt。情報:私は複数の関係のためにこれを行う必要があり、私は関係を追加するたびに、すべてのパス間の組み合わせがパフォーマンスを悪化させることに気付きました。例:
MATCH (n) where id(n)= {neo_id}
OPTIONAL MATCH p=(n)-[:OWNS]->(q:Something)
OPTIONAL MATCH o=(n)-[:USES]->(r:SomethingElse)
.
.
.
OPTIONAL MATCH l=(n)-[:LOCATED_IN]->(r:NthSomethingElse)
RETURN n, p, o,..., l
または
//Call 1
MATCH (n) where id(n)= {neo_id}
RETURN n
//Call 2
MATCH (n) where id(n)= {neo_id}
OPTIONAL MATCH p=(n)-[:OWNS]->(q:Something)
RETURN p
//Call 3
MATCH (n) where id(n)= {neo_id}
OPTIONAL MATCH o=(n)-[:USES]->(r:SomethingElse)
RETURN o
.
.
.
//Call nth
MATCH (n) where id(n)= {neo_id}
OPTIONAL MATCH l=(n)-[:LOCATED_IN]->(r:NthSomethingElse)
RETURN l
完璧!それは多くの意味があります。 –