J'essaie de créer une requête à l'aide de cypher pour "trouver" les ingrédients manquants qu'un chef pourrait avoir. Mon graphique est configuré comme suit :
(ingredient_value)-[:is_part_of]->(ingredient)
(ingredient)
aurait une clé/valeur de name="dye colors". (ingredient_value)
pourrait avoir une clé/valeur de valeur="rouge" et "fait partie" de l'élément (ingredient, name="dye colors")
.
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)
J'utilise cette requête pour obtenir toutes les ingredients
mais pas leurs valeurs réelles, ce qui est nécessaire pour une recette, mais je voudrais que le retour ne concerne que les éléments suivants ingredients
que le chef n'a pas, au lieu de tous les ingrédients que chaque recette requiert. J'ai essayé
(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef
mais cela n'a rien donné.
Est-ce quelque chose qui peut être accompli par cypher/neo4j ou est-ce quelque chose qui est mieux géré en retournant tous les ingrédients et en les triant moi-même ?
Bonus : existe-t-il également un moyen d'utiliser Cypher pour faire correspondre toutes les valeurs que possède un chef à toutes les valeurs requises par une recette. Jusqu'à présent, je n'ai renvoyé que les correspondances partielles renvoyées par la fonction chef-[:has_value]->ingredient_value<-[:requires_value]-recipe
et en agrégeant les résultats moi-même.
0 votes
Consultez ici les informations relatives à la v3 : stackoverflow.com/questions/25673223/
0 votes
Pour les futurs utilisateurs, vous pouvez utiliser
exists
dans unWHERE
(la nier également), neo4j.com/developer/subqueries/#existential-subqueries pour plus d'informations.