У меня есть график, где зеленые узлы могут быть связаны с одним или несколькими красными узлами, которые затем связываются с набором синих узлов. Красные узлы также имеют свойство amt, которое указывает минимальное количество синих узлов в наборе, которые должны быть сопоставлены, чтобы «удовлетворить» красный узел. Данный набор синих узлов «подходит» для зеленого узла, если набор удовлетворяет всем красным соседям зеленого узла.
Пример
Как написать запрос на шифрование, чтобы вернуть все подходящие зеленые узлы для данного набора синих узлов?
Я придумал следующее, которое возвращает зеленые узлы, если все синие узлы его красных соседей совпадают. Однако мне не нужно сопоставлять все, а вместо amt, указанного для каждого красного узла.
MATCH (g:Green)-->(r:Red)-->(b:Blue)
WITH g, COLLECT(b.name) AS myset
WHERE ALL(n in myset where n in ["1", "2", "3", "4", "8", "9", "11"])
RETURN p