Как проверить свойство массива в neo4j?

Как искать узел с помощью запроса cypher, где одно из свойств узла имеет массив строк ?
например,members-- > ["abc","xyz","pqr"].
Я могу найти узел, сохраняя порядок элементов массива таким же образом, например

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

но как искать узел, если я не / не могу предоставить точный порядок элементов, как они находятся в свойстве узла ?

1 ответов


используйте предикат " all " для обеспечения каждого элемента в корне.член находится в данном списке, т. е. корень.члены-это подмножество данного списка, и выражение длины гарантирует, что данный список имеет не больше элементов, чем в корне.члены, так как они содержат точно такие же члены.

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