2017-11-27 7 views
2

BOM으로 직접 연결되는 항공편이없는 모든 도시를 파악하려고합니다. 내 쿼리는 지금까지와 같이 보이지만 불일치 입력에 구문 오류가 있습니다. " 첫 줄에. 모든 항공편의 모든 출발 도시에서 BOM으로 직접 비행하는 도시를 모두 빼는 방법은 무엇입니까? neo4j에 새로 온 사람.어디에도 사용하지 않을 때 neo4j 구문 오류가 발생합니다.

MATCH(n.source_airport_code) WHERE NOT IN (MATCH (n:Flight) 
WHERE n.destination_airport_code = "BOM" 
RETURN DISTINCT n.source_airport_code) 
+1

이 쿼리에는 여러 가지 오류가 있습니다. 1. 'MATCH'는 속성이 아닌 노드와 관계 만 대상으로 할 수 있습니다. 2. Cypher는 (아직) 하위 쿼리 –

+0

을 지원하지 않습니다. 내가 어디에서 옵션이 없거나 collect()가 작동 할 수 있다는 것을 알았습니다. 하위 쿼리가 아직 지원되지 않으면 어떻게해야합니까? – curious4cs

답변

1

Gabor의 의견에서 지적한대로 Cypher는 하위 쿼리를 지원하지 않습니다. 귀하의 요구 사항을 완전히 이해했다면 collect() 함수와 DISTINCT 연산자와 함께 두 가지 다른 MATCH을 수행하여 목표를 달성 할 수 있습니다. 시도 :

MATCH (n:Flight) 
WHERE n.destination_airport_code = "BOM" 
WITH collect(DISTINCT n.source_airport_code) as codes 
MATCH (n) WHERE NOT n.source_airport_code IN codes 
RETURN n