как удалить дубликаты свойств внутри Neo4j - PullRequest
0 голосов
/ 25 марта 2020

Я новичок в Neo4j, и я пытаюсь изучить его, чтобы начать проект для моей диссертации, я потратил много времени на ручную реорганизацию большого набора данных из xml в CSV, затем я импортировал часть этой базы данных в Neo4j, я бы избежал этих дубликатов, но я не могу найти правильный запрос, вы можете мне помочь?

Спасибо! Пожалуйста, скажите мне, если вам нужно что-то узнать об этой базе данных или других материалах, чтобы лучше понять ситуацию.

Duplicates

1 Ответ

0 голосов
/ 25 марта 2020

Вот один способ убедиться, что список 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...