2
두 가지 유형의 노드 (객체 및 조각)와 두 가지 유형의 링크 (similarTo 및 contains)가 포함 된 그래프가 있습니다. 어떤 조각은 조각으로 만들어져 있습니다.Cypher 선택적 대칭
개체 집합에서 시작하여 각 조각의 경로를 추출하고 싶습니다.
MATCH (o:Object)
WITH o
OPTIONAL MATCH path = (p:Piece) <-[:contains*]- (o) -[:similarTo]- (:Object)
RETURN path
위의 쿼리는 일부만 반환합니다. 반환 된 그래프에서 일부 객체는 어떤 조각에 직접 연결되지 않지만 실제로는 그렇지만 후자는 반환되지 않습니다.
WITH rels(path) as relations , nodes(path) as nodes
UNWIND relations as r unwind nodes as n
RETURN {nodes: collect(distinct n), links: collect(distinct {source: id(startNode(r)), target: id(endNode(r))})}
: 내가 가진 노드와 링크의 모음을 반환해야하는 쿼리에 대한 전체 경로를 반환하지 못했다, 그러나
MATCH (o:Object) -[:contains*]-> (p:Piece)
OPTIONAL MATCH (o) –[:similarTo]- (:Object)
:
나는에 쿼리를 변경할 수 있습니다
나는 어떤 권고에도 감사 할 것입니다.