다음과 같은 노드가 있습니다. 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
데이터를 기준으로 두 가지를 선택해야합니다.
c 노드는 모두 동일한 레이블입니까? 그렇다면 l1에 연결되지 않은 해당 레이블의 모든 노드 또는이 특정 하위 집합 만 찾고 있습니까? – InverseFalcon
또한 데이터의 텍스트 표현을 제공 할 수 있습니까? 그림에서 두 개의 "l1"노드가있는 것처럼 보입니다. 맨 오른쪽 노드에 쓴 내용도 분명하지 않습니다. – cybersam