簡體   English   中英

從密碼查詢中獲取路徑長度

[英]Get Path Length from Cypher Query

因此,假設我有一個像這樣的節點列表:

A-> B-> C-> D-> ...

我想將節點F添加到此列表的開頭。 為了使這種模式復雜化,我可以引用此列表上的任何節點作為“起點”,從中我需要從中得出起點。 例如,可以為我提供對節點“ C”的引用,並且需要派生一種算法,該算法將返回對A的引用。

我認為這應該可以通過查詢來完成

    START n = node(*), a = node(*)
    MATCH a -[:LINKED*]> n
    WHERE n.id! = <ID>
    RETURN a

如果我可以按長度對關系進行排序,那么我可以簡單地將最長的路徑作為關系中的第一個節點,然后沿自己的方式前進。 麻煩的是,我不知道如何按路徑長度排序結果。 我認為這是有可能的,我只是缺少一個小的查詢命令。 有沒有人?

-pYr0

長度就是函數: http : //docs.neo4j.org/chunked/stable/query-functions-scalar.html#functions-length

START n = node(*), a = node(*)
MATCH p=a -[:LINKED*]-> n
WHERE n.id! = <ID>
RETURN a
ORDER BY length(p) desc

如果您想成為列表的頭,則還可以將其與指向候選節點的可選關系進行匹配。 如果該關系不存在,那么您就在那里。

假設您已獲得鏈中某個節點的ID

START n = node(<ID>)
MATCH () -[r?:LINKED]-> a -[:LINKED*]-> n
WHERE r = null
RETURN a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM