Вернуть узел, если связь отсутствует

Я пытаюсь создать запрос с использованием шифра, который будет "Найти" Отсутствующие ингредиенты, которые может иметь шеф-повар, Мой график настроен так:

(ingredient_value)-[:is_part_of]->(ingredient)

(ingredient) будет иметь ключ / значение name = & quot; dye colors & quot ;.(ingredient_value) может иметь ключ / значение value = & quot; красный & quot; и "является частью"(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, или это лучше всего обрабатывать, возвращая все ингредиенты и сортируя их сам?

Бонус: также есть способ использовать шифр, чтобы сопоставить все значения, которые имеет шеф-повар, со всеми значениями, которые требует рецепт. До сих пор я возвращал только все частичные совпадения, которые были возвращеныchef-[:has_value]->ingredient_value<-[:requires_value]-recipe и агрегирование результатов сам.

Ответы на вопрос(6)

Ваш ответ на вопрос