我需要遍歷由邊緣向財產「依賴」是「真」連接所有頂點Orientdb從每個路徑的邊緣屬性遍歷時,得到最後的頂點
這是我到目前爲止有:
SELECT
FROM (TRAVERSE *
FROM (SELECT outE() FROM 9:5)
WHILE (@class = 'E' AND dependence = 'yes') OR @class = 'V')
WHERE @class = 'V'
雖然林不知道,如果是做到這一點的最好辦法,這似乎做工精細下面僅就這裏邊有「依賴」的路徑=「是」。
現在,可能會生成多條路徑,我需要從每個路徑/分支中獲取最後一個頂點。
traverserdVertex(-1)應返回最後一個了,但是我猜是從整體遍歷所以也是白搭。 (它看起來像有一個錯誤,因爲它會檢索一個以上)
外SELECT返回的頂點,所以我在想,也許發現的那些全包在沒有傳出邊緣與依賴='是'可能會解決它,但我不知道如何很好地做到這一點。
SOLUTION:
SELECT
FROM (TRAVERSE *
FROM (SELECT outE() FROM 9:5)
WHILE (@class = 'E' AND dependence = 'yes') OR @class = 'V')
WHERE @class = 'V' AND NOT (outE() contains (dependence='yes'))
這有效地返回從每個分支的最後一個頂點。我願意接受任何其他選擇,我想知道是否可以改進。
我想你可以使用JavaScript編寫下OrientDB服務器功能自己的函數,然後從SQL調用它。我試着寫它。 –
我剛剛發現了一個解決方案,但我好奇你的方法,生病等待它看到javascript alternatve :)謝謝! – Sebastian