ノードがあり、ルートまでのすべての親関係を見つける必要があります。
したがって、次の場合:A-> B-> C-> D(root)A-> E-> F-> D(root)
Aは私が持っているノードであり、そのすべての祖先が必要です。
私は暗号クエリを試しました:
MATCH (n:yo {name:"foo"})-[:HELLO*1..]->(p:yo) RETURN p
しかし、B、C、D、E、Fのようなリストが表示されます。したがって、それらの間の接続は失われます。[[B-> C-> D]、[E-> F-> D]]のようなリストを持つことは可能ですか?
私はこのクエリをウェブサイトで見ました、そしてそれは働きます。ただし、[[A、B]、[A、B、C]、[A、B、C、D]]を返します。サブパスは必要ありません。
start c = node:node_auto_index ( object_id = ‘10179’ )
MATCH path = c <- [ : PARENT_OF* ] – p
return distinct
length ( path ) AS PATH_LENGTH
, extract ( n in nodes ( path ) : n.object_id ) as the_path
order by length ( path )
あなたはこのようなものを探しています。Aノードで始まり、:CHILD_OF
別のノードではないノードで終わるパスを一致させます。これにより、サンプルデータごとに2行のノードコレクションが返されます。
MATCH p=(a:Node {name: 'A'})-[:CHILD_OF*]->(end:Node)
WHERE NOT (end)-[:CHILD_OF]->()
RETURN tail(nodes(p))
collect()
単一の行を返したい場合にも結果を得ることができます。
MATCH p=(a:Node {name: 'A'})-[:CHILD_OF*]->(end:Node)
WHERE NOT (end)-[:CHILD_OF]->()
RETURN collect(tail(nodes(p)))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加