2013-10-01 6 views
5

Wie Knoten mit cypher Abfrage suchen, wo eine der Knoteneigenschaft Array von String?
z.B. members-- > ["abc","xyz","pqr"].
Ich kann den Knoten finden, indem ich die Reihenfolge der Array-Elemente auf die gleiche Weise festhalte, z.Wie überprüfen Array-Eigenschaft in Neo4j?

START root=node(*) where has(root.members) and root.members=["abc","xyz","pqr"] return root;

aber wie Knoten suchen, wenn ich nicht die genaue Reihenfolge der Elemente bietet nicht/kann, wie sie in Knoten Eigenschaft sind?

Antwort

7

Verwenden Sie das Prädikat "all", um sicherzustellen, dass jedes Element in root.member in der angegebenen Liste ist, dh root.members ist eine Teilmenge der angegebenen Liste und der Längenausdruck stellt sicher, dass die angegebene Liste keine Elemente mehr enthält als das, was in den root.members ist, so enthalten beide die genau gleichen Mitglieder.

START root=node(*) 
Where has(root.members) and all (m in root.members where m in ["abc","xyz","pqr"]) and length(root.members) = length(["abc","xyz","pqr"]) 
Return root 
+0

Prädikate .. schön, danke für die Information. :) – agpt