2016-11-28 1 views

답변

3

다음은 단일 쿼리의 예입니다.

본질적으로 자신을 먼저 발견하고, 원하는 사람을 선택하여 수집하고, 좋아하는 사람을 찾고 수집 한 다음 두 컬렉션과 교차점을 반환합니다.

당신을 식별하고 그것을 재사용하는 노드를 맞추면 3 번 대신 1 번 자신을 찾습니다.

수집 필터 기능을 사용하면 두 개의 노드를 교차하지 않고 두 개의 :LIKES 모집단의 교차를 찾을 수 있습니다.

OPTIONAL 키워드를 사용하면 :LIKES 채우기가 비어 있으면 쿼리를 계속할 수 있습니다.

MATCH (you:User {name: "Alexander"}) 
WITH you 
OPTIONAL MATCH(you)-[:LIKES]->(youLike:User) 
WITH you, collect(youLike) as youLike 
OPTIONAL MATCH (likesYou:User)-[:LIKES]->(you) 
WITH you, youLike, collect(likesYou) as likesYou 
RETURN you 
, youLike 
, likesYou 
, filter(n in youLike where n in likesYou) as mutualLike 
관련 문제