Вот один способ убедиться, что список dedicateePersonId
имеет различные значения:
MATCH (p:Person)
UNWIND p.dedicateePersonId AS id
WITH p, COLLECT(DISTINCT id) AS ids
SET p.dedicateePersonId = ids
[ОБНОВЛЕНИЕ]
Вышеупомянутый подход достаточен, если было только одно свойство, которое нуждается в корректировка, но очень неподходящая (слишком сложная и неэффективная) для нескольких свойств.
Вот гораздо лучший подход (с использованием функций apo c .create.setProperty и apo c .coll.toSet ) для обновления значений любого количества ключей свойств. keys
предполагается как параметр , содержащий имена обновляемых свойств.
MATCH (p:Person)
UNWIND $keys AS k
CALL apoc.create.setProperty(p, k, apoc.coll.toSet(p[k])) YIELD node
RETURN DISTINCT node