Nodo de retorno si la relación no está presente

Estoy tratando de crear una consulta usando una clave que "Buscará" los ingredientes faltantes que podría tener un chef. Mi gráfico está configurado de esta manera:

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

(ingredient) tendría una clave / valor de nombre = "colores de tinte".(ingredient_value) podría tener una clave / valor de valor = "rojo" y "es parte de" la(ingredient, name="dye colors").

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

Estoy usando esta consulta para obtener todos losingredients, pero no sus valores reales, que requiere una receta, pero me gustaría que la devolución sea solo laingredients que el chef no tiene, en lugar de todos los ingredientes que requiere cada receta. Lo intenté

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

pero esto no devolvió nada.

¿Es esto algo que se puede lograr con cypher / neo4j o es algo que se maneja mejor devolviendo todos los ingredientes y ordenándolos yo mismo?

Bonus: También hay una forma de usar el cifrado para hacer coincidir todos los valores que tiene un chef con todos los valores que requiere una receta. Hasta ahora solo he devuelto todas las coincidencias parciales que son devueltas por unchef-[:has_value]->ingredient_value<-[:requires_value]-recipe y agregando los resultados yo mismo.

Respuestas a la pregunta(6)

Su respuesta a la pregunta