Zwróć węzeł, jeśli nie ma relacji

Próbuję utworzyć zapytanie za pomocą szyfrowania, które „znajdzie” brakujące składniki, które może mieć szef kuchni. Mój wykres jest skonfigurowany w następujący sposób:

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

(ingredient) miałby klucz / wartość nazwy = „kolory farbujące”.(ingredient_value) może mieć klucz / wartość value = „red” i „jest częścią”(ingredient, name="dye colors").

(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)

Używam tego zapytania, aby uzyskać wszystkieingredients, ale nie ich rzeczywiste wartości, których wymaga przepis, ale chciałbym, aby zwracał tylkoingredients że szef kuchni nie ma, zamiast wszystkich składników, których wymaga każdy przepis. próbowałem

(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef

ale nic nie zwróciło.

Czy jest to coś, co można osiągnąć za pomocą cypher / neo4j, czy jest to coś, co najlepiej można rozwiązać, zwracając wszystkie składniki i samodzielnie je sortując?

Bonus: Jest również sposób na użycie szyfrowania, aby dopasować wszystkie wartości, które kucharz ma do wszystkich wartości, których wymaga przepis. Do tej pory zwróciłem tylko wszystkie częściowe dopasowania, które są zwracane przez achef-[:has_value]->ingredient_value<-[:requires_value]-recipe i sam agreguję wyniki.

questionAnswers(6)

yourAnswerToTheQuestion