2 votes

La clause Where de Cypher ne fonctionne pas

En utilisant le code ci-dessous, j'essaie d'obtenir toutes les zones qui ne sont pas supprimées et leurs éléments. Le problème est que la clause where ne semble pas fonctionner du tout. Elle renvoie toujours toutes les zones, bien que certaines d'entre elles soient supprimées. Avez-vous une idée de ce qui m'échappe ?

Match(n:Zone)
WITH n
WHERE NOT n.deleted in [NULL, 'false'] 
OPTIONAL Match(n)-[]-(items:Item) 
RETURN n, items;

Utilisation de la version 2.3.1

3voto

Dave Bennett Points 7819

Je pense que l'on ne peut pas traiter les nuls avec la fonction IN prédicat. Je pense que tu dois reformuler ça avec (n.deleted = false or n.deleted is null) . De même, le fait de réordonner les WITH limiterait le nombre de zones que vous renvoyez de la base de données.

MATCH (n:Zone)
WHERE NOT coalesce(n.deleted, false) = false
WITH n
OPTIONAL MATCH (n)--(items:Item) 
RETURN n, items;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X