从neo4j中的其他节点派生标签名称
我使用的是ne04j 2.1.2社区版 我有一个带有标签的节点,名为从neo4j中的其他节点派生标签名称,neo4j,cypher,Neo4j,Cypher,我使用的是ne04j 2.1.2社区版 我有一个带有标签的节点,名为Company,我通过加载CSV文件以及MERGE和CREATE命令创建了这些节点和标签。 因此,将来如果我的标签名称发生变化,比如说Company到Organization,我希望在某个地方维护createddate、UpdateDate、NewLabelName和OldLabelName值 因此,为了实现这一点,我考虑维护一个主节点,它保存标签信息,也就是说,它应该具有NewLabelName、OldLabelName、Cr
Company
,我通过加载CSV文件以及MERGE和CREATE命令创建了这些节点和标签。
因此,将来如果我的标签名称发生变化,比如说Company
到Organization
,我希望在某个地方维护createddate、UpdateDate、NewLabelName和OldLabelName值
因此,为了实现这一点,我考虑维护一个主节点,它保存标签信息,也就是说,它应该具有NewLabelName、OldLabelName、CreatedDate、UpdatedDate等属性。因此,标签名称应该来自主节点到其他节点。无论何时对标签进行任何更改,都应该在主节点中更新相应的updateDate
属性值,并且NewLabelName应该从主节点到其他节点(该标签所属的节点)
希望你能理解这里的情况
但我怎样才能做到这一点呢?有可能实现吗?如果是,那么如何定义主节点和其他节点之间的关系?
(这里我的其他节点是Google、Yahoo、Samsung等公司的名称,这些节点将有一些其他子节点,如location)
请提出解决办法。(我想用cypher而不是java实现这些功能)
谢谢虽然标签可以更改,但您应该很少这样做(例如,从错误中恢复过来)。更改大量标签非常昂贵,不应将其作为正常处理的一部分
此外,与Java类名一样,标签名通常不会显示给最终用户。所以,真的没有理由改变它们。开始时尽量选择合理的标签名称,不要计划更改它们。是的,我知道不要频繁更改标签名称,或者在开始时我需要选择合理的名称。但我的要求是将来标签名称可能会更改。因此,我只想对主节点进行更改,在主节点中定义了标签,并希望在主节点中维护其他属性。如果我在那里更改标签,它将反映在下面的后续节点中。如何做到这一点?标签和公共属性值只能存在于单个“主”节点中,该节点与每个其他节点(共享该标签和公共属性值)具有关系(例如,与类型<代码>子节点代码>)。这样,只需在主节点中更改标签或共享属性值。唯一的缺点是查询会更长,类似于
MATCH(m:myLabel)-[:CHILD]>(n{name:“Fred”})
而不是MATCH(n:myLabel{name:“Fred”})
。但是,由于只有一个节点被标记为myLabel
,因此这种影响应该可以忽略不计。