Во-первых, вам понадобится какой-то способ уникальной идентификации каждого edge
, чтобы вы могли сопоставить вычисленное y_predict
с правильным узлом. Ниже я предполагаю, что триплет col1
, col2
и col3
являются уникальными.
Я не знаком с py2neo, но в прямом Cypher вы можете передать массив в виде строки JSON и затем пройтичерез массив с помощью команды unwind
.
Если вы передадите JSON в форме
{predictions: [{col1: "A", col2: "B", col3: "C", prediction: 75}, {col1: "D", col2: "E", col3: "F", prediction: 100}]}
, тогда эта команда Cypher установит y_predict
на каждом узле
unwind {predictions} as p
match (e:edge {col1: p.col1, col2: p.col2, col3: p.col3})
set e.y_predict = p.prediction
Чтобы использовать идентификатор узла вместотри значения столбца, JSON может быть отформатирован следующим образом
{predictions: [{e_id: 72, prediction: 75}, {e_id: 67, prediction: 100}]}
и использоваться с этим Cypher
unwind {predictions} as p
match (e:edge) where id(e) = p.e_id
set e.y_predict = p.prediction