2016-08-05 26 views
0

enter image description hereCyper查詢 - 屬性值變化傳播

您好,

在上述曲線圖中,我們有一個場景,其中在一個節點的值屬性中的任何一個被更新,則該值的效果,以被傳播到其餘節點。應如何通過密碼查詢來傳播此值更改事件。

感謝您的支持

+0

對下游節點匹配時遵循哪些關係有任何限制嗎? – InverseFalcon

+0

更新必須發生在上游,即如果屬性在節點上發生變化(比如說例子中的R5),那麼所有具有影響的上游節點都應該重新計算值屬性。(例如,R5應該對R4,R3 ,在某些情況下R2或R5應該對S1..S5節點產生影響) – j2eeuser

+0

聲音就像規則不一樣。沒有標籤或不瞭解這些節點的邏輯以及它們之間關係的含義,提供任何解決方案都相當困難。我想我們需要一些更具體的方法來解釋這些場景應該如何工作,以及在我們提供任何類型的建議之前,哪些節點或關係需要通過哪些標準。 – InverseFalcon

回答

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

找到正確的匹配查詢後,它應該只是對所有匹配節點進行重新計算的問題。

+0

嗨,屬性值不會相同。依賴節點的屬性值需要根據一些規則進行計算 – j2eeuser

+0

編輯我的答案了一下,希望它更符合您的要求 – InverseFalcon

+0

對MATCH查詢中可以使用的關係類型標籤數量有任何限制: R45 | R34 |等等,假設有大約20到30個標籤?將這麼多標籤貼在關係上是否正確?所有的S節點可能不會在R5處終止。其中一些將分支並終止於不同的R節點。所以我想包括SNode名稱(S1,S2)作爲關係標籤名稱。 – j2eeuser