요리사가 가질 수있는 누락 된 재료를 "찾기"하는 cypher를 사용하여 쿼리를 만들려고합니다. 내 그래프는 다음과 같이 설정됩니다.
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
키 / 값은 name = "dye colors"입니다. (ingredient_value)
key / value는 value = "red"이고 "is part of"일 수 (ingredient, name="dye colors")
있습니다.
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
이 쿼리를 사용하여 ingredients
레시피에 필요한 모든 실제 값 을 가져 오지만 ingredients
각 레시피에 필요한 모든 재료 대신 요리사가 가지고 있지 않은 값만 반환하고 싶습니다 . 나는 시도했다
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef
그러나 이것은 아무것도 반환하지 않았습니다.
이것은 cypher / neo4j가 수행 할 수있는 것입니까, 아니면 모든 재료를 반환하고 직접 분류하여 가장 잘 처리되는 것입니까?
보너스 : 또한 셰프가 가지고있는 모든 값을 레시피에 필요한 모든 값과 일치시키기 위해 cypher를 사용하는 방법이 있습니다. 지금까지 a에 의해 반환 된 모든 부분 일치 만 반환 chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
하고 결과를 직접 집계했습니다.