2017-03-09 94 views
1

我有一張保存企業雲基礎架構拓撲結構的圖表。它由稱爲對象(機器)的頂點和稱爲鏈接的邊緣組成(表示機器如何彼此鏈接,這些鏈接根據一臺機器可以連接根據需要到不同的機器)。基於Edge |屬性值的圖遍歷OrientDB

create class Object extends V 

create class link extends E 

對象頂點表示機器具有存儲機器配置的屬性。

create property Object.ram long 

create property Object.mem long 

create property Object.cpu_core long 

「鏈接」邊緣鏈接機器在一起以形成topology.It是出站邊緣從一個機器到另一個。它有兩個基於時間的屬性startTime,它表示在兩臺機器之間創建此邊緣的時間,以及最初爲無窮大的endTime,如果我們需要關閉表示兩臺機器並且現在不再鏈接的Edge,則爲update。

create property link.startTime long 

create property link.endTime long 

create property link.l_id string 

我從一個對象(頂點)到它的所有連接的對象強加鏈路(邊緣)的條件的特性,同時遍歷的時間說不想橫動,應開始時間< =噸< =結束時間。

例如Topology(請點擊鏈接) 我想從節點擺脫#21向下遍歷:使用鏈接的邊緣,其0到所有的邊緣開始時間> 1488965393和endTime < 1498965393.我很新的OrientDB而不是能夠找出相同的可能的SQL命令。

僞查詢(尋找可能的話類似的東西):

SELECT * FROM (TRAVERSE out('link') FROM #21:0 while startTime > 1488965393 and endTime < 1498965393) 

回答

0

我是能夠形成生產所需的輸出查詢

SELECT ID表單(穿越了() FROM#21:0 WHILE(creationTime < = 1488965393 AND endTime> = 1488965393 AND @ class ='link'))WHERE @ class ='Object'