如何刪除密碼程序返回的較小路徑,這些路徑已包含在包含在相同結果中的其他較長路徑中?從密碼庫返回的路徑列表中刪除較小的子集路徑
例如,如果我的密碼是MATCH path=(n)-[:REL*]->(m) where id(n)=<some id> return path
。因此它返回包含任何數量的類型爲[:REL]
的傳出關係的所有路徑。然而,它爲較長的路徑(包含多於2個節點)返回多個路徑,每個路徑包含從指定的開始節點到較長路徑中的連續節點的路徑。正如你可以看到(a)-[:REL]->(b)
包含在所有
(a)-[:REL]->(b)-[:REL]->(c)-[:REL]->(f)
(a)-[:REL]->(b)-[:REL]->(c)
和(a)-[:REL]->(b)-[:REL]->(d)
,
(a)-[:REL]->(c)
是
(a)-[:REL]->(b)
(a)-[:REL]->(b)-[:REL]->(c)
(a)-[:REL]->(b)-[:REL]->(c)-[:REL]->(f)
(a)-[:REL]->(b)-[:REL]->(d)
(a)-[:REL]->(c)
(a)-[:REL]->(c)-[:REL]->(e)
:例如,它可能會返回以下路徑containe d在(a)-[:REL]->(c)-[:REL]->(e)
(a)-[:REL]->(b)-[:REL]->(c)
包含在(a)-[:REL]->(b)-[:REL]->(c)-[:REL]->(f)
我不想(a)-[:REL]->(b)
,(a)-[:REL]->(c)
和(a)-[:REL]->(b)-[:REL]->(c)
出現在輸出,因爲它們的其他路徑的一部分。
cypher可能嗎?不知怎的,我覺得(儘管感覺這很奇怪),密碼在關係規範之前應該允許!
(邏輯上不是)暗示特定類型的關係不會離開(或進入)節點。我可以這樣寫:
MATCH path=(n)-[:REL*]->(m)!-[:REL]->() where id(n)=<some id> return path
這將不允許這些較小的路徑。
反正我怎麼能在cypher以上做?
是啊,我需要實踐CYPHER更多...切換頻繁科技股不允許我說:\ – Mahesha999