我可以为同一标签的两个不同节点中的相同值定义不同的属性吗?



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

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

是否可以像描述的那样将两个数据库中的数据集成到属性图中?

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

您当然希望在某个时间点对此进行协调,以便以某种常见方式查询数据。

同时,您可以使用函数(如 coalesce())来帮助您处理不同的数据。例如,如果要显示所有 :P erson 节点的名称,并且它们采用这两种不同的格式,则可以进行如下查询:

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

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

最新更新