Estoy tratando de crear una consulta usando cifrado que "encontrará" los ingredientes faltantes que un chef podría tener. Mi gráfico está configurado así:
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
tendría una clave / valor de name = "dye colors". (ingredient_value)
podría tener una clave / valor de valor = "rojo" y "es parte de" (ingredient, name="dye colors")
.
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
Estoy usando esta consulta para obtener todos los ingredients
valores, pero no sus valores reales, que requiere una receta, pero me gustaría devolver solo lo ingredients
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 puede lograr cypher / neo4j o es algo que se maneja mejor devolviendo todos los ingredientes y clasificándolos yo mismo?
Bono: también hay una manera de usar cypher 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 chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
ay agregando los resultados yo mismo.