[英]OrientDB select unique Vertices from multiple Edges
我有2個頂點User和Stamp。 頂點由Have,WishToHave和Selling三個邊緣關聯。
我希望選擇與用戶有任何關系的獨特圖章。 為此,我正在運行以下命令:
select expand(out('Have', 'WishToHave', 'Selling')) from #12:0
該命令的問題在於它會多次返回“ Stamp1”,因為它具有“銷售”和“銷售”優勢。
如何選擇與User1相關的所有唯一/不同圖章?
要為該示例初始化測試數據:
create class User extends V
create class Stamp extends V
create class Have extends E
create class WishToHave extends E
create class Selling extends E
create vertex User set name = 'User1'
create vertex Stamp set name = 'Stamp1'
create vertex Stamp set name = 'Stamp2'
create vertex Stamp set name = 'Stamp3'
create edge Have from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp1')
create edge WishToHave from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp2')
create edge Selling from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp1')
create edge Selling from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp3')
我嘗試過使用您的結構的情況:
要檢索唯一的頂點,可以使用DISTINCT()
函數。 我可以舉兩個例子:
查詢1:在目標查詢中使用EXPAND()
SELECT EXPAND(DISTINCT(@rid)) FROM (SELECT EXPAND(out('Have', 'WishToHave', 'Selling')) FROM #12:0)
輸出:
查詢2:在目標查詢中使用UNWIND
SELECT EXPAND(DISTINCT(out)) FROM (SELECT out('Have', 'WishToHave', 'Selling') FROM #12:0 UNWIND out)
輸出:
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.