Estou tentando criar uma consulta usando uma cifra que "encontrará" ingredientes ausentes que um chef pode ter. Meu gráfico está configurado assim:
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
teria uma chave / valor de name = "dye colors". (ingredient_value)
poderia ter uma chave / valor de valor = "vermelho" e "faz 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 os ingredients
, mas não seus valores reais, que uma receita exige, mas gostaria de retornar apenas o ingredients
que o chef não tem, em vez de todos os ingredientes que cada receita exige. 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 é algo que é melhor tratado devolvendo todos os ingredientes e separando-os eu mesmo?
Bônus: também existe uma maneira de usar cifragem para combinar todos os valores que um chef possui com todos os valores que uma receita exige. Até agora, retornei apenas todas as correspondências parciais retornadas por a chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
e agregando os resultados sozinho.