Могу ли я определить разные атрибуты для одинаковых значений в двух разных узлах для одной и той же метки?
Я хотел бы объединить данные из двух разных реляционных баз данных в один помеченный граф свойств. Базы данных имеют другую структуру данных, например:
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 ответ
Да, это возможно. Neo4j не имеет ограничений на то, какие свойства могут использоваться между узлами, поэтому узлы одной метки (:Person) могут иметь совершенно разные ключи свойств друг от друга.
Вы, конечно, захотите согласовать это в какой-то момент времени, чтобы вы могли запросить данные каким-то распространенным способом.
Тем временем вы можете использовать функции, такие как coalesce (), чтобы помочь вам работать с различными данными. Например, если вы хотите отобразить имена всех: узловых лиц, и они были в этих двух разных видах форматов, вы можете сделать запрос, например:
MATCH (p:Person)
RETURN coalesce(p.Name, p.`First Name` + ' ' p.`Last Name`) as name
Будет использовано первое ненулевое значение, обнаруженное функцией, поэтому, если Name
свойство существует, оно будет использовано, в противном случае оно будет пытаться объединить свойства имени и фамилии в строку.