2013-12-08 2 views
0

네임 데이터베이스에 여러 재료 및 레시피 노드가 포함되어 있습니다 (예 : (레시피) - [CONTAINS] -> (성분)).Neo4j : 여러 끝 노드와 일치

두 가지 특정 성분이 들어있는 모든 요리법을 찾고 싶지만 그 방법을 알아낼 수 없습니다. 개념적으로 그것은 내가 원하는 것 같습니다 :

START ingr1=node:Ingredients(id=1), ingr2=node:Ingredients(id=2) 
MATCH recipe-[CONTAINS]->ingr1, 
     recipe-[CONTAINS]->ingr2 
RETURN recipe 

분명히 다른 시작과 끝 노드와 같은 관계에 대해 일치하는 것은 좋지 않습니다. 이것에 대해 생각하는 올바른 방법은 무엇이며 적절한 쿼리는 어떻게 생겼을까요?

답변

2

조회에 거의 완벽합니다, 당신은 단지 관계 유형 앞에 콜론을 놓치고 : 콜론없이

START ingr1=node:Ingredients(id=1), ingr2=node:Ingredients(id=2) 
MATCH recipe-[:CONTAINS]->ingr1, 
     recipe-[:CONTAINS]->ingr2 
RETURN recipe 

, CONTAINS의 관계에 대한 변수 이름입니다. 분명히 같은 관계는 동시에 두 개의 서로 다른 끝 노드를 가질 수 없기 때문에 빈 결과를 얻게됩니다.

+0

성공 - 감사합니다! 너무 쉽다 :-) – Salis

+0

그래프스트 챌린지의 일환으로이 그래프를 보여줄 수도 있습니다. http://www.neo4j.org/learn/graphgist_challenge! –

+0

팁 피터 주셔서 감사. 나는이 도전에 대해 들어 보지 못했지만 그것을 확실히 들여다 볼 것입니다! – Salis

관련 문제