是否可以在相同标签的两个不同节点中为相同值定义不同属性?

时间:2019-01-22 11:04:52

标签: neo4j property-graph

我想将来自两个不同关系数据库的数据集成到一个标记的属性图中。 数据库具有不同的数据结构,例如:

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 :(得分:0)

是的,这是可能的。 Neo4j对节点之间可以使用的属性没有任何限制,因此具有相同标签(:Person)的节点可以具有彼此完全不同的属性键。

您当然希望在某个时间点进行调和,以便您可以通过某些常用方式查询数据。

同时,您可以使用诸如coalesce()之类的功能来帮助您处理不同的数据。例如,如果要显示所有:Person节点的名称,并且它们采用两种不同的格式,则可以像这样查询:

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

将使用该函数遇到的第一个非空值,因此,如果存在Name属性,则将使用它,否则它将尝试通过字符串将姓氏和姓氏属性串联起来。