Могу ли я определить разные атрибуты для одинаковых значений в двух разных узлах для одной и той же метки? - PullRequest
0 голосов
/ 22 января 2019

Я хотел бы объединить данные из двух разных реляционных баз данных в один помеченный граф свойств. Базы данных имеют другую структуру данных, например:

System a:
First Name: Barack
Last Name: Obama

System b:
Name: Donald Trump

Defined Labels:
    :Person
    :SystemA
    :SystemB

Определенные узлы со свойствами для LabeledPropertyGraph:

:Person :SystemA
First Name: Barack
Last Name: Obama

:Person :SystemB
Name: Donald Trump

Можно ли интегрировать данные из двух баз данных в граф свойств, как описано?

1 Ответ

0 голосов
/ 23 января 2019

Да, это возможно.Neo4j не имеет ограничений на то, какие свойства могут использоваться между узлами, поэтому узлы одной метки (: Person) могут иметь совершенно разные ключи свойств друг от друга.

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

Тем временем вы можете использовать такие функции, как coalesce () , чтобы помочь вам работать с различными данными.Например, если вы хотите отобразить имена всех: узловых лиц, и они были в этих двух разных видах форматов, вы можете сделать запрос, например:

MATCH (p:Person)
RETURN coalesce(p.Name, p.`First Name` + ' ' p.`Last Name`) as name

Первое ненулевое значение, обнаруженное функциейбудет использоваться, поэтому, если свойство Name существует, оно будет использовано, в противном случае оно будет пытаться объединить свойства имени и фамилии в строку.

...