Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从neo4j中的其他节点派生标签名称_Neo4j_Cypher - Fatal编程技术网

从neo4j中的其他节点派生标签名称

从neo4j中的其他节点派生标签名称,neo4j,cypher,Neo4j,Cypher,我使用的是ne04j 2.1.2社区版 我有一个带有标签的节点,名为Company,我通过加载CSV文件以及MERGE和CREATE命令创建了这些节点和标签。 因此,将来如果我的标签名称发生变化,比如说Company到Organization,我希望在某个地方维护createddate、UpdateDate、NewLabelName和OldLabelName值 因此,为了实现这一点,我考虑维护一个主节点,它保存标签信息,也就是说,它应该具有NewLabelName、OldLabelName、Cr

我使用的是ne04j 2.1.2社区版

我有一个带有标签的节点,名为
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
,因此这种影响应该可以忽略不计。