Как установить Увеличенное значение в узлах neo4j - PullRequest
0 голосов
/ 29 августа 2018

У меня есть пара узлов, и мне нужно добавить добавочное значение во все узлы определенной метки.

match wd= (w:MYNODE)
 forEach(n IN nodes(wd)|
  set n.incrementalId=??
);

в настоящее время я пытался для каждого проходить по каждому узлу, но не смог получить индекс каждого цикла PS: я также пытался с, но не могу увеличить т.е. т.е. текущее значение.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Это более лаконичная версия первого запроса @ InverseFalcon (и напоминает форму запроса в вашем вопросе):

MATCH (w:MYNODE)
WITH COLLECT(w) as ws
FOREACH(i IN RANGE(0, SIZE(ws)-1) | SET (ws[i]).incrementalId = i);
0 голосов
/ 29 августа 2018

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

MATCH (w:MYNODE)
WITH collect(w) as myNodes
UNWIND range(0, size(myNodes)-1) as index
WITH index, myNodes[index] as node
SET node.incrementalId = index

Если узлы еще не существуют, и вы хотите создать некоторое количество из них с инкрементными идентификаторами, то с помощью функции range() проще создать список индексов:

UNWIND range(1, 100) as id
CREATE (:MYNODE {id:id})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...