Cyper查询 - 属性值更改传播

时间:2016-08-05 12:02:33

标签: neo4j cypher

enter image description here

您好,

在上图中,我们有一个场景,其中节点的任何一个value属性正在更新,该值的效果将传播到其余节点。如何通过“传播”来传播这一价值变化事件。密码查询。

感谢您的支持

1 个答案:

答案 0 :(得分:0)

对于这组节点,是否要求此特定属性始终相同?如果它必须相同,那么我建议将其提取到节点中,并从应该使用它的所有节点创建与该节点的关系。

将值放在一个地方,它只需要在该节点上进行一次属性更改,一切都将处于正确的状态。

修改

要求相当模糊,所以我的答案也会模糊不清。

如果您根据关系类型进行匹配,那么您将需要某种关系的多样性,并可能在匹配中指定允许的类型。如:

MATCH (start:RNode)-[:R45|R34|R23|R12*]->(r:RNode)
WHERE start.ID = 123 (or however you're matching on your start node)

这将匹配关系链中startNode的每个节点,直到没有更多允许的关系继续遍历为止。

如果您需要更复杂的扩展,您可能需要查看APOC过程库的Path Expander

找到合适的匹配查询后,只需对所有匹配的节点进行重新计算即可。