2016-12-20 1 views
0

У меня есть два значения, извлеченные из запроса select в базе данных MySQL. Первое содержит имя свойства, а второе содержит значение свойства.Параметр Query Where Contents Определяет как имя свойства, так и значение свойства Назначено

Есть ли способ, с помощью параметра, чтобы присвоить значение имени в первом поле есть что-то вроде

имени SET в row.Property_Name = row.Property_Value

ответ

1

Это не возможно сделать с Только Cypher: синтаксис n[name] позволяет вам read, но не записывать свойство с динамическим именем.

Однако, вы можете сделать это с помощью процедуры APOC, хотя в документации отсутствует: apoc.create.setProperty(). Он находится в ветвях APOC 3.0 и 3.1, поэтому вы можете пойти с любым экземпляром Neo4j 3.x.

CALL apoc.create.setProperty(n, row.Property_Name, row.Property_Value) 
+0

Выглядит многообещающе. Еще нет. Получение ошибки: Процедурный вызов внутри запроса не поддерживает имена имен неявно (имя явно используется вместо «YIELD») (строка 18, столбец 3 (смещение: 720)) «CALL apoc.create.setProperty (n, row. Property_Name, row.Property_Value) " – wikitect

1

Если вы можете изменить эти пары ключ/значение на карту, вы можете установить их на узлах.

Синтаксис, если карта была изменена на параметр, выглядит следующим образом для столбца узлов п:

SET n += $map 

Вы можете просмотреть SET clause в документации.

 Смежные вопросы

  • Нет связанных вопросов^_^