私はこのようなノードを持っています。 neo4jで除外されたノードの数を取得する方法
ノード(l1)にマップされていないすべてのノード(c1からc5)を取得したいので、結果ノードは(c2)、(c4)、および(c5)にする必要があります。 Neo4jでどのように問い合わせることができますか?
私はこのようなノードを持っています。 neo4jで除外されたノードの数を取得する方法
ノード(l1)にマップされていないすべてのノード(c1からc5)を取得したいので、結果ノードは(c2)、(c4)、および(c5)にする必要があります。 Neo4jでどのように問い合わせることができますか?
あなたが目的のノードへの一方向のパスが存在しない、そこからそれらのノードを選択する必要があります
MATCH (E {name: 'l1'}) WITH E
MATCH (M) WHERE NOT (M)-[*]->(E)
RETURN M
ナイーブ溶液は次のようになり
(C、LノードラベルR1は、リレーションシップ・タイプです)MATCH (c:C)
WHERE NOT((c)-[:R1]->(l:L {...})
RETURN c
ここで、(l:L {...})
は、ノードl1を識別するフィルタです。
Cノードから出てくる関係が非常に多く、遅くなる場合。次のように試すことができます:
MATCH (l:L {...})<-[:R1]-(c:C)
WITH COLLECT(c) AS cs
MATCH (c2:C)
WHERE NOT c2 NOT cs
RETURN c2
データに基づいて2つの中から選択する必要があります。
cノードはすべて同じラベルですか?もしそうなら、l1にリンクされていないラベルのすべてのノード、またはこの特定のサブセットだけを探していますか? – InverseFalcon
また、データのテキスト表現を提供できますか?あなたの図面から、2つの "l1"ノードがあるように見えます。一番右のノードに書いたものも明確ではありません。 – cybersam