2014-04-14 2 views
4

내 neo4j 데이터베이스에서 서브 그래프 (S)를 선택하고 S에서 다른 쿼리를 사용하여 두 노드가 연결되어 있는지 확인하려고합니다. neo4j에 쿼리를 작성하는 방법이 있습니까? node.js와 Cypher를 사용하고 있습니다. 편집 : 나는이 비슷한 일을 해요 , 예를 들어 :neo4j : 서브 그래프 쿼리 방법

Match (u:User)-[:adds]->(y:Paper)-[:consistsOf]->(e:L2)-[]->(m:L3) 
where u.username = 'test' 
MATCH p=(m:L3)-[r:gives*1..4]->(n:L3) 
... 

주셔서 감사합니다 예에서

+0

짧은 대답은 "예"입니다. 아마도 더 길고 구체적인 질문을 제시하면 더 긴 대답을 얻을 수 있습니다 .-). – cybersam

답변

6

, 당신은이 (정리처럼 2 MATCH 문을 연결하는 WITH 절을 사용할 수 있습니다) 조금 :

MATCH (u:User {username:'test'})-[:adds]->(y:Paper)-[:consistsOf]->(e:L2)-->(m:L3) 
WITH m 
MATCH p=(m)-[r:gives*1..4]->(n:L3) 
... 

WITH 절은 그 목적이 다음에 하나 개의 쿼리에서 값 (들)을 전달하는 것을 제외하고, RETURN 같다. 이 경우 'm'만 전달되므로 두 번째 MATCH는 'u', 'y'또는 'e'를 인식하지 못합니다.

+0

그래서 노드 n도 첫 번째 쿼리에서 올 것인가? 그렇지 않다면 첫 번째 쿼리에서 어떻게 만들 수 있습니까? – user2103008

+0

n 노드는 계속 두 번째 MATCH 문에서옵니다. – cybersam

+0

예, 작동합니다. 이 사건에 대한 성과를 개선 할 수있는 방법이 있는지 궁금합니다. – user2103008

관련 문제