Пользователь передает мне массив UUID, который ссылается на узлы в моей базе данных. Я хочу связать ее узел USER с каждым из этих других узлов. Проблема в том, что я хочу знать порядок, в котором UUID были предоставлены мне.Приращение значения в запросе Cypher Neo4j
Так что, если UUID, являются: [AAA, CCC, BBB], я хочу, чтобы выполнить что-то вроде:
(user)-[:REL {order: 1}]->(:THING {name:"AAA"})
(user)-[:REL {order: 2}]->(:THING {name:"CCC"})
(user)-[:REL {order: 3}]->(:THING {name:"BBB"})
Конечно, я не хочу делать это в нескольких операторов. Я хочу передать этот список в качестве параметра.
MATCH(u:USER {id:{id}})
MATCH(t:THING) where t.name in {that_list}
CREATE (u)-[:REL {order: ???}]->(t)
Примечание ???
. В этом суть.
Как это можно сделать? У меня есть прохождение тестов с использованием цикла, но я чувствую, что должен это сделать.
Я не знаю ваших случаев использования, но подумал ли вы о цепочке узлов «ВЕЩЬ» в порядке, чтобы вам не нужно иметь свойства 'order'? Например: '(user) - [: REL] -> (: THING {name:" AAA "}) - [: REL] -> (: THING {name:" BBB "}) - [: REL] -> (: THING {name: "CCC"}) '? – cybersam
@cybersam это очень умно. Я не уверен, что смогу это сделать в моем случае, но это очень графу. Мне это нравится. –