2017-12-16 1 views
1

UCSD 비디오를 따라 Neo4j 실습을하고 있습니다. 나는 연습을 위해 제공된 대본을 자르고 붙인다.Neo4j : 쿼리 당 정확히 하나의 명령문이 필요하지만 다음과 같이 표시됩니다. 3

match (d {Name:'D'})-[:TO]-(b) 
with collect(distinct b.Name) as neighbors 
match (n)-[r:TO]->(m) 
where 
not (n.Name in (neighbors+'D')) 
and 
not (m.Name in (neighbors+'D')) 
return n, r, m; 

match (d {Name:'D'})-[:TO]-(b)-[:TO]->(leaf) 
where not((leaf)-->()) 
return (leaf); 

match (d {Name:'D'})-[:TO]-(b)<-[:TO]-(root) 
where not((root)<--()) 

return (root) 

이 반환 :

쿼리 당 정확히 하나의 문을 예상하지만 가지고 난 그냥 그래프가 지정된 노드의 바로 이웃을 포함하지 않는 제공된 스크립트 문제로 실행했습니다 : 3

처음 8 행을 실행할 때, Neo4j는 예상 노드와 모서리가있는 그래프를 반환합니다. 그러나 후속 쿼리를 추가하면 오류 메시지가 표시되기 시작합니다.

+1

한 번에 하나의 쿼리 만 실행할 수 있습니다. 'MATCH ... RETURN ...'문을 별도로 복사하여 붙여 넣으십시오. –

+0

안녕하세요 @James_Pineda! 입력 한 답이 문제를 해결 한 경우 체크 표시를 클릭하여 [수락] (https://meta.stackexchange.com/q/5234/179419)을 고려하십시오. 이는 해결책을 찾았고 응답자와 자신에게 어느 정도의 평판을 제공한다는 것을 더 넓은 커뮤니티에 나타냅니다. 이를 수행 할 의무는 없습니다. 감사! –

답변

2

Neo4j Browser은 한 번에 하나의 쿼리 만 실행할 수 있습니다. 당신은 3을 실행하려고 :

쿼리 1 :

match (d {Name:'D'})-[:TO]-(b) 
with collect(distinct b.Name) as neighbors 
match (n)-[r:TO]->(m) 
where 
not (n.Name in (neighbors+'D')) 
and 
not (m.Name in (neighbors+'D')) 
return n, r, m; 

쿼리 2

match (d {Name:'D'})-[:TO]-(b)-[:TO]->(leaf) 
where not((leaf)-->()) 
return (leaf); 

3 쿼리 : 복사, 붙여 넣기 이러한 3 개 쿼리를 실행해야합니다

match (d {Name:'D'})-[:TO]-(b)<-[:TO]-(root) 
where not((root)<--()) 

return (root) 

갈라져.

Neo4j 브라우저 Github Repo에 브라우저에서 한 번에 여러 개의 Cypher 문을 지원하는 것에 대한 내용은 open issue입니다. 그러나 이는 특히 데이터를 반환하지 않는 문에 대한 것입니다.

+0

또 다른 가능성은 함께 결합하여 하나의 쿼리가 중간 RETURN 문을 제거하고 각각의 기억 사이에 WITH 문을 추가하여 다음 문에 필요한 것을 전달합니다. 이전 쿼리에서 일치하는 쿼리가있을 경우 다음 쿼리를 작성할 때이 점이 가장 중요합니다. – wikitect

관련 문제