11.7 Foreach

Коллекции и пути являются ключевыми концепциями в Cypher. Чтобы использовать их для обновления данных, можно применить конструкцию FOREACH. Она позволяет выполнять команды обновления на элементах в коллекции  — пути, или коллекции, созданной посредством агрегации.

Контекст идентификатора внутри скобок foreach отделен от контекста вне их. Это означает, что если вы СОЗДАЕТЕ идентификатор узла внутри FOREACH, вы не сможете использовать его вне оператора foreach, если вы не выполняете сопоставление, чтобы найти его.

Внутри скобок FOREACH вы можете выполнять любую из команд обновления —  CREATE, CREATE UNIQUE, DELETE и FOREACH.

Примеры исходят из следующей базы данных:


Рис. 11.2 Данные для примера

11.7.1 Отметить все узлы вдоль пути

Этот запрос установит свойство marked в значение true на всех узлах вдоль пути.

Запрос

MATCH p =(begin)-[*]->(END )
WHERE begin.name='A' AND END .name='D'
FOREACH (n IN nodes(p)| SET n.marked = TRUE )

ничего не возвращает кроме того, что 4-х свойства установлены.

Таблица 11.41 Результат

Properties set: 4
(пустой результат)

Предыдущая | Следующая