2017-04-15 3 views
0
나는 다음과 사이퍼와 관련된 여러 노드에서 관련 데이터를 검색하기 위해 노력하고

: 아직 다음과 같은 기존 관계가없는 경우데이터 검색

Match (n {email:{paramEmail}})-[*..3]-(m) Return n,m", 
     { paramEmail: email}) 

문제는 내가 얻을 수있다 제로 행 반환 된 ... 사용자 (n)가 있지만이 시점에서 관계가 없는데도 사용자를 찾을 수 없습니다. 나는 별도의 호출을해야하므로 사용자 (n) 노드의 속성이 여전히 필요합니다. m과 관계가 없더라도 n을 반환하는 쿼리가 있습니까?

답변

1

예, 이메일을 사용자에 일치 첫째, 다음 나머지 옵션 MATCH를 사용

MATCH (n {email:{paramEmail}}) 
OPTIONAL MATCH (n)-[*..3]-(m) Return n,m 

또한, 당신의 노드에 라벨을 사용하여 조언을 것입니다. 이렇게하면 사용자를 이메일로 신속하게 조회 할 수 있습니다 (사용자 (전자 메일)에 대한 색인을 만든 후). 현재 쿼리는 그래프의 모든 노드를 스캔하여 주어진 전자 메일 매개 변수가있는 노드를 찾아야합니다.

+0

감사합니다. 검색 할 때 라벨과 색인을 사용합니다. – MichaelE