Как проверить свойство массива в 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