Retornar nó se o relacionamento não estiver presente

Estou tentando criar uma consulta usando o cypher que "localizará" ingredientes ausentes que um chef pode ter. Meu gráfico está configurado da seguinte forma:

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

(ingredient) teria uma chave / valor de name = "cores de tintura".(ingredient_value) poderia ter uma chave / valor de valor = "vermelho" e "é parte de" o(ingredient, name="dye colors").

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

Estou usando essa consulta para obter todos osingredients, mas não seus valores reais, que uma receita exige, mas eu gostaria que o retorno apenas oingredients que o chef não tem, em vez de todos os ingredientes que cada receita requer. eu tentei

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

mas isso não retornou nada.

Isso é algo que pode ser realizado por cypher / neo4j ou isso é algo que é melhor manipulado, retornando todos os ingredientes e classificados por eles mesmos?

Bônus: Também há uma maneira de usar o cypher para combinar todos os valores que um chef tem para todos os valores que uma receita exige. Até agora eu só retornei todas as correspondências parciais que são retornadas por umchef-[:has_value]->ingredient_value<-[:requires_value]-recipe e agregar os resultados eu mesmo.

questionAnswers(6)

yourAnswerToTheQuestion