Выполнить запрос Cypher ровно N раз

Есть ли способ повторить запрос Cypher ровно N раз? Либо в веб-интерфейсе, либо в консоли.

Существуют процедуры APOC для выполнения запроса до тех пор, пока он не вернет ноль. Но я не нашел ничего, чтобы запускать запрос несколько раз.


person Martin Preusse    schedule 25.10.2017    source источник


Ответы (2)


Вы можете сделать это с помощью процедуры APOC apoc.periodic.iterate:

Документы о apoc.periodic.iterate говорят:

С apoc.periodic.iterate вы предоставляете 2 оператора, первый внешний оператор предоставляет поток значений для обработки. Второй, внутренний оператор обрабатывает по одному элементу за раз (...)

В приведенном ниже примере первый оператор возвращает 10 элементов. Таким образом, второй оператор будет выполнен 10 раз, создав 10 :Person узлов.

CALL apoc.periodic.iterate(
    "WITH RANGE(0,9) AS list UNWIND list as element RETURN element",
    "CREATE(:Person)", {}
)
person Bruno Peres    schedule 25.10.2017

Если вы не хотите задействовать APOC в настоящее время, вы можете сделать следующее:

UNWIND range(0,500) as iterations
CREATE(:Person);
person Aleksander Lech    schedule 20.04.2020