2017-02-13 64 views
0

執行我有一個簡單的喜歡的查詢,告訴如果一個項目是最喜歡的一個人不使用許多選擇階梯效應查詢小鬼的性能或如何是選擇一步小鬼

g.V().has('personId','3f857b1').choose(identity().out('favourite').has('itemId','48a680b'),constant('Already_favourite'),choose(V().has('itemId','48a680b'),constant('NotFavourite'),constant('InvalidItem'))) 

它是一個不好的做法,編寫嵌套選擇步驟,因爲它是在其他編程語言

我想知道,如果我們能夠實現小鬼

+0

我個人覺得,選擇如下的if else或開關實現 –

回答

2

存儲過程是一個不好的做法,編寫嵌套選擇步驟

不,但我仍然會以不同的方式編寫您的查詢。如果項目不存在,不要浪費計算時間並快速停止遍歷。另一方面,如果它存在,嘗試通過它的id找到它;並不適用於所有相鄰頂點獲取itemId屬性:

result = g.V().has('itemId', '48a680b').as('item'). 
      V().has('personId','3f857b1').coalesce(
       out('favourite').where(eq('item')).constant('Already_favourite'), 
       constant('NotFavourite')).tryNext().orElse('InvalidItem'); 
+0

謝謝丹尼爾這樣的解釋是非常有益的 –