我想對我的路徑匹配模式施加限制。 我想基於上一次使用關係的類型匹配下一個關係。基於以前的關係的Cypher匹配路徑
下面是一個簡化的數據庫的一個例子:
(A)-1-(B)-2-(C)-1-(E)-2-(F)
| |
3----(D)----3
查詢1:
start n=node(A), m=node(F)
match p=n-[r*]-m
return p
應導致兩個路徑
(A)-1-(B)-2-(C)-1-(E)-2-(F)
(A)-1-(B)-3-(D)-3-(E)-2-(F)
然而,運行查詢從節點開始時(F):
start m=node(F),n=node(A)
match p=m-[r*]-n
return p
結果應該是唯一的:
(F)-2-(E)-1-(C)-2-(B)-1-(A)
路徑
(F)-2-(E)-3-(D)-3-(B)-1-(A)
應該是無效的,因爲它違反了這些約束:
- 從-1-類型的關係即將您可以繼續使用012-或關係。
- 來自-2或-3型關係,您只能進行 -1-關係。
這些路徑是有效的:
()-1-()-2-()
()-1-()-3-()
()-2-()-1-()
()-3-()-1-()
這些路徑是無效的:
()-3-()-2-()
()-2-()-3-()