Ich habe diese Datenbank:Cypher-Bedingungen auf allen Knoten in der Auflistung verhält sich falsch?
CREATE (A:A {name:"A"})-[:R]->(B:B {name:"B"})-[:R]->(C:B {name:"C"})-[:R]->(D:A {name:"D"})-[:R]->(E:A {name:"E"})
Diese Abfrage
MATCH p = (:A)-[*]->(:B) WITH NODES(p)[1..] AS p_nodes RETURN p_nodes
kehrt Kante (B)-->(C)
. Und B
und C
haben beide Label B
. Warum fragt diese Abfrage dann
MATCH p = (:A)-[*]->(:B) WITH NODES(p)[1..] AS p_nodes
WHERE ALL(x IN p_nodes[0..] WHERE LABELS(x) = "B") RETURN p_nodes
zurück nichts (keine Zeilen)? Das einzige, was es tut, ist sicherzustellen, dass p_nodes
B
nur beschriftete Knoten enthält. Und wie es die erste Abfrage gezeigt hat.