我正在使用OrientDB(2.2.10),偶爾我想直觀地檢查我的數據集以確保我正確地做事情。在這個頁面上OrientDB的http://orientdb.com/orientdb/你看到一個大圖的一個很好的可視化下面的查詢:OrientDB工作室的可視化圖形
select * from V limit -1;
所以,我想相同的查詢,我的數據集,但結果是如此極端低迷,我無法正常工作它。我的數據集不是非常大(幾百個頂點,幾千條邊),但結果仍然不可行。我嘗試了所有主流瀏覽器,但所有的結果都一樣。另外我的電腦沒有動力不足,我有一個四核i7 16GB內存。
作爲一個非常簡單的例子,我有以下圖表: BAR --WITHIN ---> CITY --LOCATED_IN - >國家
這裏:Find "friends of friends" with OrientDB SQL我能得到至少怎樣一個例子在圖上進行這種查詢。我設法讓我圖的一個子集,舉例如下:
select expand(
bothE('WITHIN').bothV()
) from Bar where barName='Foo' limit -1
該得到的我1條頂點,內邊緣和城市頂點的圖形。但是如果我現在想要進一步提取這個城市所在的國家,我就無法得到這種風格的查詢來爲我工作。我試過這個:
select expand(
bothE('WITHIN').bothV()
.bothE('LOCATED_IN').bothV()
) from Bar where barName='Foo' limit -1
這會導致顯示相同的子集。但是,如果我首先運行第一個查詢,然後不清除畫布運行第二個查詢,我會得到3個頂點。所以看起來我很接近,但我想獲得所有3個頂點,並且它在一個查詢中是邊緣的,不必先運行一個然後再運行另一個。有人能指出我正確的方向嗎?
感謝Oleksandr和Alessandro爲你的答案。我今晚會試試他們,看看最適合我的是什麼!我仍然在苦苦掙扎的是,你的兩個解決方案看起來都很不一樣,一個是「traverse」關鍵字,另一個是「unwind」關鍵字。我很難找到一個指導或教程,其中解釋了這些概念,哪個更適合哪種情況。你可能有一些鏈接到一些在線資源,這些概念被解釋?謝謝! –
http://orientdb.com/docs/last/SQL-Traverse.html/ http://orientdb.com/docs/last/SQL-Query.html#unwinding –
完美,感謝您的鏈接。這並不是完全清楚,但我在哪種情況下使用什麼,但我想我只需要在這裏建立一點經驗:) –